Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用asp.net标识关闭浏览器后保留登录信息?_C#_Asp.net_Asp.net Mvc_Asp.net Identity - Fatal编程技术网

C# 如何在使用asp.net标识关闭浏览器后保留登录信息?

C# 如何在使用asp.net标识关闭浏览器后保留登录信息?,c#,asp.net,asp.net-mvc,asp.net-identity,C#,Asp.net,Asp.net Mvc,Asp.net Identity,使用ASP.NET标识时,我希望在用户登录到我的网站时尽可能长时间保留登录信息,这样用户在重新打开浏览器时就不需要再次登录(就像github.com和stackoverflow.com一样)。当我登录github时,它会将我的信息保存很多天,所以我不需要每天再次登录。是否有任何方法可以使用ASP.NETIdentity实现此功能?只需将适当的值传递给SignIn方法的isPersistent参数: SignInManager.PasswordSignInAsync("email@id.com",

使用
ASP.NET
标识时,我希望在用户登录到我的网站时尽可能长时间保留登录信息,这样用户在重新打开浏览器时就不需要再次登录(就像github.com和stackoverflow.com一样)。当我登录github时,它会将我的信息保存很多天,所以我不需要每天再次登录。是否有任何方法可以使用
ASP.NET
Identity实现此功能?

只需将适当的值传递给SignIn方法的
isPersistent
参数:

SignInManager.PasswordSignInAsync("email@id.com", "password", isPersistent: true, shouldLockout: false);

ispersist
参数用于控制是否应保留用户的身份验证cookie


rememberBrowser
参数用于双因素身份验证:记住的浏览器可以仅使用密码直接登录。

您需要在
AuthenticationProperties
上设置
IsPersistent
属性,以便在浏览器关闭后保持登录。注册的方法
user.GenerateUserIdentityAsync
生成要在cookie中刷新的新
ClaimsIdentity

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
    );
}
专用异步任务登录(用户,bool ispersist)
{
等待信号同步(用户,ispersist);
返回信号状态成功;
}
公共异步任务符号同步(用户用户,bool ispersist)
{
var userIdentity=await user.GenerateUserIdentityAsync(UserManager);
AuthenticationManager.SignIn(
新的AuthenticationProperties
{
ispersist=ispersist
},
用户身份
);
}
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
    );
}