Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表单身份验证超时后重定向到页面_C#_Asp.net_Session_Forms Authentication_Session Timeout - Fatal编程技术网

C# 表单身份验证超时后重定向到页面

C# 表单身份验证超时后重定向到页面,c#,asp.net,session,forms-authentication,session-timeout,C#,Asp.net,Session,Forms Authentication,Session Timeout,在我的asp.net web应用程序中,我使用以下配置的asp.net窗体身份验证 <authentication mode="Forms"> <forms name=".ASPNETAUTH" loginUrl="Login.aspx" protection="None" timeout="20" /> </authentication> 现在有一个 FormsAuthentication.GetAuthCookie() 它需要用户名和bool来

在我的asp.net web应用程序中,我使用以下配置的asp.net窗体身份验证

<authentication mode="Forms">
    <forms name=".ASPNETAUTH" loginUrl="Login.aspx" protection="None" timeout="20" />
</authentication>
现在有一个

FormsAuthentication.GetAuthCookie()
它需要用户名和bool来持久化cookie,但这是用于创建身份验证cookie而不是获取它。那么,var cookie的第一行代码是什么样子的呢

目前,我在web配置中使用“设置”,然后当用户在设置会话中登录时,然后在我的基本页的页面初始化中的每一篇文章上检查该会话是否为空,如果是,则重定向到会话超时页面。这并不是我真正想要的

可能已经知道如何得到饼干

HttpCookie cookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);

这不起作用,因为当身份验证票证过期时,cookie会消失,cookie变量为空。还有其他方法可以让它工作吗?我仍然希望在回发时检查身份验证是否已过期,然后采取适当的措施。有人有什么想法吗???

Q:那么,var cookie,firs会是什么呢t行代码看起来像


var cookie=HttpContext.Current.Request.Cookies[FormsAuthentication.formscookeName]

需要记住的是,即使您的会话在服务器端超时,客户端也不会处理任何内容,直到下一个请求。此时,客户端会发现其会话已过期,并尝试重新启动会话。响应。重定向,甚至服务器。重定向调用对此都没有帮助


您需要做的是将服务器超时与客户端超时同步,并准备一些客户端脚本以将用户重定向到“超时”类型的页面。我已经写了一篇文章,其中包含一些关于如何执行此操作的示例代码。

谢谢,这正是我所需要的。几分钟前我刚刚发现了答案。
HttpCookie cookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);