加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在MVC 5中为OwinContext设置TimeOut

发布时间:2020-12-15 23:15:00 所属栏目:asp.Net 来源:网络整理
导读:当用户访问网站并输入存储在我们的数据库中的凭据时,我们在创建身份验证时. 你如何设置超时? 使用MVC 5. 我的身份验证如下所示: var claims = new ListClaim(); claims.Add(new Claim("UserId",user.UserID.ToString())); claims.Add(new Claim(ClaimTypes
当用户访问网站并输入存储在我们的数据库中的凭据时,我们在创建身份验证时.

你如何设置超时?
使用MVC 5.

我的身份验证如下所示:

var claims = new List<Claim>();
        claims.Add(new Claim("UserId",user.UserID.ToString()));
        claims.Add(new Claim(ClaimTypes.Name,user.FirstName + " " + user.LastName));
        claims.Add(new Claim(ClaimTypes.Email,user.Email));
        claims.Add(new Claim(ClaimTypes.NameIdentifier,user.UserID.ToString()));
        var id = new ClaimsIdentity(claims,DefaultAuthenticationTypes.ApplicationCookie);

        var ctx = Request.GetOwinContext();
        var authenticationManager = ctx.Authentication;
        authenticationManager.SignIn(id);

解决方法

设置固定的到期时间跨度的方法是在Startup.Auth.cs文件中设置ExpireTimeSpan属性,如下所示:
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,LoginPath = new PathString("/Account/Login"),ExpireTimeSpan = TimeSpan.FromDays(2)
});

请注意,您还必须将cookie设置为持久.在您的代码中,除了用户名和密码之外,还必须传入bool,然后更改

authenticationManager.SignIn(id);

成为

authenticationManager.SignIn(new AuthenticationProperties { IsPersistent = rememberMe },id);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读