【问题标题】:How do I create a non persistent forms authentication cookie with timeout?如何创建具有超时的非持久性表单身份验证 cookie?
【发布时间】:2012-09-25 09:27:45
【问题描述】:
我正在使用表单身份验证并创建一个非持久性 cookie。
当我关闭浏览器时,cookie 过期,这是预期的行为。但是即使应用程序在指定的超时时间内处于空闲状态,cookie 也不会过期。我的要求是,当用户关闭浏览器或超时时间已过时,cookie 应过期。
我正在使用 Asp.Net MVC4。有什么方法可以同时满足这两个要求。
【问题讨论】:
标签:
asp.net-mvc-3
cookies
forms-authentication
【解决方案1】:
如果您不希望在每次请求时自动更新 cookie,您可能需要关闭 slidingExpiration:
<authentication mode="Forms">
<forms
loginUrl="~/Account/LogOn"
cookieless="UseCookies"
slidingExpiration="false"
timeout="1"
/>
</authentication>
现在 1 分钟后 cookie 将过期,用户将不再在后续请求中进行身份验证。 cookie 将由客户端浏览器发送,但 FormsAuthentication 模块会检测到 cookie 已过期并拒绝请求。