2014-10-15 9 views
26

Was ist der Unterschied zwischen der Verwendung von SignIn im Authentifizierungs-Manager und nicht von SignInManager in PasswordSignIn/SignIn? Ich habe eine Implementierung mit dem SignInManager, und mein Cookie-Ablauf ist auf 30 Tage eingestellt, aber es scheint, dass meine Web-App meine Cookies weit vor Ablauf von 30 Tagen ablaufen lässt. Wird die SignInManager-Implementierung die Ursache dafür sein? Sollte ich stattdessen die AuthenticationManager-Implementierung verwenden?ASP.NET Identity AuthenticationManager vs. SignInManager und Cookie-Ablauf

Der Beispielcode out-of-the-box zeigt die Anmeldung so, aber ich habe auch andere Beispiele gesehen, die AuthenticationManager-Implementierung verwenden.

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); 

Hier ist meine Startkonfiguration.

  app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      ExpireTimeSpan = TimeSpan.FromDays(30), 
      LoginPath = new PathString("/signin"), 
      Provider = new CookieAuthenticationProvider 
      { 
       OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<AppUserManager, AppUser>(
        validateInterval: TimeSpan.FromMinutes(30), 
        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
      } 
     }); 
     app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 
     app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); 
     app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); 

Antwort

28

Vor der Freigabe von Identity Framework-Version 2.1.0, müssen wir unseren eigenen Code schreiben, um Ergebnisse (SignInStatus) für Zwei-Faktor-Authentifizierung, Kontosperrung zu bekommen, EmailToBeConfirmed etc. Mit dem SignInManager hat diese wurde vereinfacht und wir erhalten SignInStatus mit einer Codezeile.

Sie können diese Überprüfung folgende NuGet-Pakete verstehen und zwei Versionen kompilieren.

Version 2.0.0: Install-Package Microsoft.AspNet.Identity.Samples -Version 2.0.0-beta1 -Pre

Version 2.1.0: Install-Package Microsoft.AspNet.Identity.Samples -Pre

AuthenticationManager.SignIn ist der Mechanismus hinter den SignInManager, um unter Verwendung von Benutzern Signin Prozess abzuschließen, so dass es keinen Unterschied zwischen AuthenticationManager.SignIn und SignInManager.PasswordSignIn/SignIn. Wir könnten SignInManager als Hilfsklasse erklären, um alle Arten der Authentifizierung wie PasswordSignIn/SignIn, SignInOrTwoFactor zu verwalten.

Daher Ablauf der Cookies nicht von der Methode, die Sie für signIn als alle in der CookieAuthenticationOptions von Start-konfiguriert konfiguriert.

+0

Vielen Dank, gut, das zu vereiteln, jetzt herauszufinden, warum meine Cookies vorzeitig ablaufen. –

Verwandte Themen