- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下代码
int intTimeout = (FormsAuthentication.Timeout.Hours * 60) +
FormsAuthentication.Timeout.Minutes;
var authTicket = new FormsAuthenticationTicket(1, Utility.userCookie, DateTime.Now,
DateTime.Now.AddMinutes(intTimeout), true, cookieValue);
string strEncryptedTicket = HttpUtility.UrlEncode(FormsAuthentication.Encrypt(authTicket));
var authCookie = new HttpCookie(Utility.userCookie, strEncryptedTicket);
authCookie.Expires = authTicket.Expiration;
//FormsAuthentication.RedirectFromLoginPage("", false);
authCookie.Secure = FormsAuthentication.RequireSSL;
//authCookie.Secure = true;
HttpContext.Current.Response.Cookies[Utility.userCookie].Expires = authTicket.Expiration;
HttpContext.Current.Response.Cookies[Utility.userCookie].Value = authCookie.Value;
低于web.config
<authentication mode="Forms">
<forms timeout="2" slidingExpiration="true" requireSSL="true" />
</authentication>
我一直点击页面链接,它仍然在 2 分钟后过期。
最佳答案
请注意 web.config 中基于自定义表单的身份验证的结构:
<forms
name="name"
loginUrl="URL"
defaultUrl="URL"
protection="[All|None|Encryption|Validation]"
timeout="[MM]"
path="path"
requireSSL="[true|false]"
slidingExpiration="[true|false]">
enableCrossAppRedirects="[true|false]"
cookieless="[UseUri|UseCookies|AutoDetect|UseDeviceProfile]"
domain="domain name"
ticketCompatibilityMode="[Framework20|Framework40]">
<credentials>...</credentials>
</forms>
如您所见,timeout
属性根据您将其设置为 2(例如 2 分钟)的分钟数工作。
通常,如果您在 web.config 中启用 slidingExpiration
。 您无需手动重新生成新的 cookie。对于您的场景,我建议您使用跟踪工具,例如 fiddler 。当你刷新页面时,你可以从Fiddler中查看是否重置了cookie过期时间。
我在 Weird Timeouts With Custom ASPNETFormsAuthentication 中找到了一个很好的例子这可以为您做一些清理工作。
关于c# - 表单认证slidingExpiration不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49254434/
假设我在 web.config 中使用这样的东西 如果 slidingExpiration 设置为 true(默认值),每次 FormsAuthenticationModule 对用户进行身份验
查看 MemoryCache 的文档我预计,如果在有效期内访问了一个对象,该期限将被刷新。老实说,我想我是从“Sliding”这个名字中推断出来的。 但是,从这个测试看来 [Test]
所以,我试图在 mvc 中设置声明的过期时间。那是代码: public class Startup { public void Configuration(IAppBuilder app)
我正在使用 ASP.Net 身份验证来控制我的应用程序授权,我需要在指定的非事件分钟数后终止用户 session ,我尝试通过执行以下方法来实现这一点 public void ConfigureAut
你好, 如何使用 absoluteExpiration 和 slidingExpiration ,如果我同时指定它们我得到:absoluteExpiration 必须是 DateTime.MaxVal
我是一名优秀的程序员,十分优秀!