2014-02-05 14 views
6

Anknüpfend this Frage fehlt, es fehlen die Verweise für die Methoden SignOut() und SignIn():AuthenticationManager Referenzen

private async Task SignInAsync(User user, bool isPersistent) 
{ 
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); 
    var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); 
    AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); 
} 

Sie jemand weiß, wie es zu lösen?

Antwort

-1

Die Methoden sollten im Microsoft.Owin.Security-Namespace definiert werden. Können Sie überprüfen, ob Microsoft.Owin dll im Projekt korrekt referenziert wird?

7

Wie haben Sie Ihre AuthenticationManager Eigenschaft definiert? Normalerweise sollte es wie folgt aussehen:

private IAuthenticationManager AuthenticationManager 
{ 
    get 
    { 
    return HttpContext.GetOwinContext().Authentication; 
    } 
} 

Damit Sie die SignOut Methoden und SignIn Lage sein sollte, nennen.

1

GetOwinContext() ist eine Erweiterungsmethode, die in Microsoft.Owin.Host.SystemWeb.dll vorhanden ist.

Sie müssen das Microsoft.Owin.Host.SystemWeb NuGet-Paket hinzufügen.

Es ist Teil des Namespaces System.Web. Stellen Sie daher sicher, dass Sie den Abschnitt System.Web in using einschließen.

1

Wenn Sie außerhalb des Controllers anrufen, sollte der AuthenticationManager wie folgt definiert werden.

private IAuthenticationManager AuthenticationManager 
    { 
     get 
     { 
      return HttpContext.Current.GetOwinContext().Authentication; 
     } 
    } 
0

Sie könnten die System.Net statt Microsoft.Owin.Security aufgenommen haben. Beide haben die Definitionen für Klasse.