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

asp.net-mvc – 如何使用表单身份验证提供保持登录功能?

发布时间:2020-12-16 06:22:21 所属栏目:asp.Net 来源:网络整理
导读:我正在生成一个FormsAuthentication票证,并将其存储在cookie中,我与MVC AuthorizeAttribute一起使用以提供授权.现在,我已经知道,如果我选中了“保持登录状态”复选框,cookie就不会过期(我只是将cookie更改为现在1年,出于测试目的,当他们已经让它检查以保持登
我正在生成一个FormsAuthentication票证,并将其存储在cookie中,我与MVC AuthorizeAttribute一起使用以提供授权.现在,我已经知道,如果我选中了“保持登录状态”复选框,cookie就不会过期(我只是将cookie更改为现在1年,出于测试目的,当他们已经让它检查以保持登录).

但是,即使我在创建故障单时设置cookie是持久的,故障单在超时期限后仍然停止工作.

这是我创建AuthTicket的代码:

var now = DateTime.UtcNow.ToLocalTime();
FormsAuthenticationTicket authTicket = new System.Web.Security.FormsAuthenticationTicket(1,username,now,now.Add(FormsAuthentication.Timeout),rememberMe,FormsAuthentication.FormsCookiePath);
string encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(authTicket);
return encryptedTicket;

这是我设置为cookie的相同encryptedTicket.任何人都知道如何让这张票允许超过FormsAuthentication超时?我是否只需要手动处理FormsAuthentication超时时间?

解决方法

cookie粘贴的时间与登录保持有效的时间不同.基本上,持久性cookie是“如果此cookie在浏览器关闭后仍然存在”,并且与此登录有效期无关.您可以使用它来存储用户名,以便用户在返回时不必重新输入此信息.

如果cookie有效,但登录已在cookie中过期,则需要再次登录.如果您希望登录的持续时间更长,则需要延长< forms>的时间. web.config中的标记,或者您可以在代码中执行此操作,但如果要延长/缩短过期时间,则需要重新编译.

以下是一些可以进一步解释这些概念的网站:

http://software-security.sans.org/blog/2012/04/05/forms-authentication-remember-me-its-hard-not-too

Cookie Confusion with FormsAuthentication.SetAuthCookie() Method

(编辑:李大同)

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

    推荐文章
      热点阅读