2014-10-15 64 views
26

Qual è la differenza tra l'utilizzo di AuthenticationManager SignIn anziché l'uso di SignInManager PasswordSignIn/SignIn? Ho un'implementazione che utilizza SignInManager e la scadenza del cookie è impostata su 30 giorni, tuttavia sembra che la mia app Web scada casualmente i miei cookie molto prima di 30 giorni. L'uso dell'implementazione SignInManager sarebbe la causa di questo? Dovrei usare invece l'implementazione di AuthenticationManager?ASP.NET Identity AuthenticationManager vs. SignInManager e scadenza cookie

Il codice di esempio predefinito mostra accesso in questo modo, ma ho anche visto altri esempi che utilizzano l'implementazione di AuthenticationManager.

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

Ecco la mia configurazione di avvio.

  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); 

risposta

28

Prima del rilascio di un quadro dell'identità versione 2.1.0, dobbiamo scrivere il nostro codice al fine di ottenere risultati (SignInStatus) per l'autenticazione a due fattori, il blocco di account EmailToBeConfirmed ecc Con l'SignInManager, questo ha stato semplificato e otteniamo SignInStatus con una riga di codice.

È possibile comprendere questo controllo in seguito ai pacchetti NuGet e al completamento di due versioni.

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

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

AuthenticationManager.SignIn è il meccanismo mediante il dietro SignInManager per completare utente processo Signin, in modo che non vi sia alcuna differenza tra AuthenticationManager.SignIn e SignInManager.PasswordSignIn/SignIn. Potremmo spiegare SignInManager come classe helper per gestire tutti i tipi di autenticazione come PasswordSignIn/SignIn, SignInOrTwoFactor.

Pertanto la scadenza dei cookie non dipende dal metodo utilizzato per signIn come tutti configurati nello CookieAuthenticationOptions di avvio.

+0

Grazie, bene a escluderlo, ora per capire perché i miei cookie continuano a scadere prematuramente. –

Problemi correlati