Asp.net 注销和返回按钮

Asp.net 注销和返回按钮,asp.net,Asp.net,我正在使用表单身份验证。用户注销后我有一个小问题。如果他在注销后点击后退按钮,他将被发送到登录时所在的页面 预防这种情况的最佳方法是什么?我环顾四周,但似乎没有一个明确的方法。理想情况下,我认为我希望在母版页上甚至在httpmodule中有一个函数,用于检查用户是否登录,如果没有,则将其重定向到登录。这是最好的方法吗 谢谢。您可以通过在page\u load事件中添加以下语句来启用受限页面的功能 Response.Cache.SetCacheability(HttpCacheability.No

我正在使用表单身份验证。用户注销后我有一个小问题。如果他在注销后点击后退按钮,他将被发送到登录时所在的页面

预防这种情况的最佳方法是什么?我环顾四周,但似乎没有一个明确的方法。理想情况下,我认为我希望在母版页上甚至在httpmodule中有一个函数,用于检查用户是否登录,如果没有,则将其重定向到登录。这是最好的方法吗

谢谢。

您可以通过在
page\u load
事件中添加以下语句来启用受限页面的功能

Response.Cache.SetCacheability(HttpCacheability.NoCache)

由于ASP.NET无法控制浏览器中的“后退”按钮(至少不能禁用它),因此我建议您按照建议的方式进行操作:

在每个页面上,检查用户是否已登录,如果未登录,请将其重定向到登录页面,可以选择使用
goto
参数将其重定向回成功登录后要导航到的页面


对于我们的大多数应用程序,我也是这样做的。

只要您执行
会话。放弃()
表单身份验证。注销()
在您的
注销
页面上,用户是否可以返回到他所在的上一页并不重要,他点击任何东西的那一刻将被重定向到
登录
页面

例如:

页面\加载登录/注销页面:

if (!IsPostBack)
{
       FormsAuthentication.SignOut();
       Session.Abandon();
}

HttpContext.User具有IsAuthenticated属性,可供您签入每个页面。如果确实要使用自定义会话变量,请确保将其删除或执行会话。退出时放弃,并在所有页面中检查它。

如何检查他是否经过身份验证?如何检查他是否经过身份验证?我使用HttpApplication MyApp=。。。然后HttpRequestMyRequest=。。。当我执行if(MyRequest.IsAuthenticated==false)时,我总是得到false,即使在用户登录之后也是如此。@frenchie因为我从未使用过表单身份验证,并且总是自己进行身份验证,所以我在成功登录时简单地设置了一个会话变量。