如何解决表单 cookie 与 C# 表单身份验证中的会话 cookie
我正在用 C# 开发一个 .NET MVC Web 应用程序,它实现了表单身份验证。
<authentication mode="Forms">
<forms loginUrl="~/Home/Register" timeout="10080" name="Test" slidingExpiration="true"/>
</authentication>
<sessionState cookieName="Test" timeout="5040"/>
我有一些问题:
- 会话状态 cookie 名称和表单 cookie 名称使用相同的名称是否可以,否则会导致超时等参数出现问题/冲突?
- 设置
slidingExpiration="true"
会导致超时自动更新还是需要在后端调用一些特殊函数? - 我已阅读此答案的第二条评论:https://stackoverflow.com/a/17813200/1080355。所以我将表单 auth cookie 超时设置为会话超时的两倍。我的做法正确吗?
解决方法
-
为两个 cookie 设置相同的名称会导致问题,请避免这种情况,为两个 cookie 设置唯一的名称
-
Cookie 会自动更新,但当然只有在收到请求时才会更新。只要没有来自浏览器的请求,就没有什么可更新的。更新就是发布一个新的 cookie 来覆盖旧的。
编辑:不知道为什么这不清楚。也许这会有所帮助:浏览器发出请求,服务器发现 cookie 有效但即将过期。所以服务器发出一个新的cookie。正式地说,是表单身份验证模块自动执行此操作。
- 表单 cookie 超时和会话状态超时完全无关,并且没有任何规则可以使两者相互依赖。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。