使用ASP.NET
标识时,我希望在用户登录我的网站时尽可能长时间地保留登录信息,这样用户在重新打开浏览器时就不需要再次登录了(就像github.com和stackoverflow.com一样)。当我登录github时,它会将我的信息保存很多天,所以我不需要每天都再次登录。是否有任何方法可以使用ASP.NET
标识实现此功能?
只需将适当的值传递给SignIn方法的isPersistent
参数:
SignInManager.PasswordSignInAsync("email@id.com", "password", isPersistent: true, shouldLockout: false);
或
SignInManager.SignInAsync(applicationUser, isPersistent: true, rememberBrowser: false);
isPersistent
参数用于控制是否应持久化用户的身份验证cookie。
rememberBrowser
参数用于双因素身份验证:记住的浏览器可以仅使用密码直接登录。
您需要在AuthenticationProperties
上设置IsPersistent
属性,以便在浏览器关闭后保持登录。注册的方法CCD_ 8生成要在cookie中刷新的新的CCD_。
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
);
}