Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

accesso al nome utente nel controller dell'API Web quando la tabella del database memorizza l'utente come intero

Dal punto di vista dell'API Web ASP.NET, l'utilizzo del provider di appartenenze e dell'autenticazione Forms predefinita è già complicato, quindi perché non l'adesione? :) Ad ogni modo, supponendo che la tua API Web sia utilizzata solo dai client Web e che FA sia interessante, puoi utilizzare UserData del ticket FA per inserire l'ID utente. In questo modo, non è necessario ottenere l'ID colpendo il tuo DB ogni volta. Ma dovrai creare tu stesso il ticket e non lasciare che l'implementazione predefinita predefinita lo faccia per te. Quindi, nell'evento PostAuthenticateRequest, puoi leggere l'ID utente dal ticket e impostarlo nell'identità. Ovviamente, devi creare la tua identità personalizzata per questo con una proprietà ID o se sei su .NET 4.5, puoi usare FormsIdentity stesso ma puoi usare l'attestazione NameIdentifier per archiviare l'ID, forse. Dai un'occhiata - ASP.NET MVC - Imposta Identity o IPrincipale personalizzati .