2015-12-22 8 views
6

Podczas korzystania z Identyfikatora ASP.NET chcę, aby informacje logowania były przechowywane tak długo, jak to możliwe, gdy użytkownik loguje się do mojej witryny, więc użytkownik nie musi logować się ponownie po ponownym otwarciu przeglądarki (tak jak github.com i stackoverflow.com). Kiedy loguję się na github, przez wiele dni moje informacje pozostają aktualne, więc nie muszę logować się ponownie każdego dnia. Czy są jakieś metody, które mogą wdrożyć tę funkcjonalność przy użyciu tożsamości ASP.NET?Jak utrwalić dane logowania po zamknięciu przeglądarki przy użyciu identyfikatora asp.net?

Odpowiedz

3

Wystarczy przejść odpowiednią wartość do isPersistent argument metod signin:

SignInManager.PasswordSignInAsync("[email protected]", "password", isPersistent: true, shouldLockout: false); 

lub

SignInManager.SignInAsync(applicationUser, isPersistent: true, rememberBrowser: false); 

isPersistent argumentem jest używana do kontroli, czy uwierzytelnianie cookies użytkownika powinny być utrwalone.

Argument rememberBrowser jest używany w przypadku uwierzytelniania dwuetapowego: zapamiętana przeglądarka może zalogować się bezpośrednio za pomocą samego hasła.

0

Należy ustawić właściwość IsPersistent na AuthenticationProperties, aby zachować logowanie po zamknięciu przeglądarki. Zarejestrowana metoda user.GenerateUserIdentityAsync generuje nowy ClaimsIdentity do odświeżenia w pliku cookie.

private async Task<SignInStatus> SignIn(User user, bool isPersistent) 
{ 
    await SignInAsync(user, isPersistent); 
    return SignInStatus.Success; 
} 

public async Task SignInAsync(User user, bool isPersistent) 
{ 
    var userIdentity = await user.GenerateUserIdentityAsync(UserManager); 
    AuthenticationManager.SignIn(
     new AuthenticationProperties 
     { 
      IsPersistent = isPersistent 
     }, 
     userIdentity 
    ); 
} 
Powiązane problemy