Z punktu widzenia ASP.NET Web API korzystanie z dostawcy członkostwa i gotowego formularza FormsAuthentication jest już kłopotliwe, więc dlaczego nie dołączyć? :) W każdym razie, zakładając, że twój internetowy interfejs API jest używany tylko przez klientów internetowych, a FA jest fajne, możesz użyć UserData biletu FA, aby umieścić identyfikator użytkownika. W ten sposób nie musisz uzyskiwać identyfikatora, uderzając za każdym razem w DB. Ale będziesz musiał sam utworzyć zgłoszenie i nie pozwolić, aby domyślna implementacja out-of-box zrobiła to za Ciebie. Następnie w zdarzeniu PostAuthenticateRequest możesz odczytać identyfikator użytkownika z biletu i ustawić go w tożsamości. Oczywiście musisz utworzyć własną niestandardową tożsamość za pomocą właściwości ID lub jeśli korzystasz z platformy .NET 4.5, możesz użyć samej FormsIdentity, ale możesz użyć oświadczenia NameIdentifier do przechowywania identyfikatora. Sprawdź to — ASP.NET MVC — Ustaw niestandardową tożsamość lub IPrincipal .