ASP.NET LoginStatus控件显示"登录"即使登录

时间:2014-08-09 20:46:12

标签: asp.net forms-authentication

在我的ASP.NET项目中,我正在使用Forms身份验证。我的main.master使用LoginStatus控件和web.config设置为" Forms"身份验证模式。

在我登录之前,控件会将文本显示为"登录。"登录后,控件将文本显示为" Logout。"这是预料之中的。但是,在点击网站内的几个链接后,控件突然开始显示"登录"虽然我仍然登录。会话仍然存在,因为我访问的一些页面会转储一些会话信息。

如果有什么能指引我朝着正确的方向发展,我将不胜感激。问候。

1 个答案:

答案 0 :(得分:0)

  • 如果您在使用设置Session变量后尝试重定向 Response.Redirect("YourPage.aspx"); 这可能导致会话令牌丢失,请尝试使用重定向的重载版本:Response.Redirect("~/YourPage.aspx", false);

  • 另一个问题也可能是错过了应用程序池的配置。如果应用程序池配置为Web场或Web园(通过设置 最多工作进程数超过一个)如果你是 不使用会话服务或SQL会话,传入的请求将 不可预测地转到其中一个工作进程,如果它不是 一个会话创建,它将迷路。 解决方案是要么不使用网络花园,如果你不需要 性能提升,或使用其中一个进程外会话 提供者。

有关详细信息,请查看以下原始文章的链接:http://weblogs.asp.net/bleroy/Don_2700_t-redirect-after-setting-a-Session-variable-_2800_or-do-it-right_2900_