Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Zugriff auf den Benutzernamen im Web-API-Controller, wenn die Datenbanktabelle den Benutzer als Ganzzahl speichert

Aus Sicht der ASP.NET-Web-API ist die Verwendung des Mitgliedschaftsanbieters und der vorkonfigurierten FormsAuthentication bereits klobig, warum also nicht der Beitritt? :) Wie auch immer, vorausgesetzt, Ihre Web-API wird nur von den Web-Clients verwendet und FA ist cool, können Sie die Benutzerdaten des FA-Tickets verwenden, um die Benutzer-ID einzugeben. Auf diese Weise müssen Sie die ID nicht jedes Mal abrufen, indem Sie auf Ihre DB tippen. Sie müssen das Ticket jedoch selbst erstellen und dies nicht von der Standardimplementierung erledigen lassen. Dann können Sie im Ereignis PostAuthenticateRequest die Benutzer-ID aus dem Ticket lesen und in der Identität festlegen. Natürlich müssen Sie hierfür Ihre eigene benutzerdefinierte Identität mit einer ID-Eigenschaft erstellen, oder wenn Sie .NET 4.5 verwenden, können Sie FormsIdentity selbst verwenden, aber Sie können möglicherweise den NameIdentifier-Anspruch verwenden, um die ID zu speichern. Sehen Sie sich das an - ASP.NET MVC - Benutzerdefinierte IIdentity oder IPrincipal festlegen .