【发布时间】:2018-08-21 14:33:41
【问题描述】:
我有以下代码
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 分钟后过期。
【问题讨论】:
-
请提供更多详细信息:1)您托管的 Web 服务器的版本,2)您的 web.config 中的 FormAuthenticationModule 是否有任何更改 3) Utility.userCookie 的值是什么?
-
你能提供你的 web.config 文件吗??
-
您在哪里拒绝
authCookie作为响应的一部分?看来您正在创建一个然后永远不会发送回用户。接下来....你确定你没有使用 Identity 框架吗?过去几年创建的任何项目默认情况下都不会使用表单身份验证,因此您在其中放置的任何设置都不会受到身份框架的尊重。 -
我已经给出了 web.config 的任何与表单身份验证相关的详细信息
-
你的asp.net版本是多少?
标签: c# asp.net-mvc cookies form-authentication slidingexpiration