.NET Web 表单应用程序不断注销用户

本文关键字:注销 用户 应用程序 Web 表单 NET | 更新日期: 2023-09-27 18:37:21

我有一个 Web 表单应用程序,我测试了它,并且在本地运行良好。当我将其上传到托管我的网站的Web服务器时,它通常只是注销用户(他们被重定向到帐户/登录.aspx页面)。

不会在应用程序中产生错误,所以我不知道如何正确调试它,但我认为它发生在页面加载事件期间,因为用户有时会(并非总是)在进行一些更改后退出应用程序,但更改保持保存。

我认为由于某种原因,我保留用户登录的会话变量被重置。

如果你有一个想法或指出我一个方向,我可以调查这个问题,我将不胜感激。

这是我在我的网站Master.cs中加载页面时运行的代码,也许它有帮助:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["UserId"] == null)
            {
                Response.Redirect("~/Account/login.aspx");
            }
            if (!Session["Role"].ToString().Equals("Coach"))
            {
                if (Session["Role"].ToString().Equals("Administrator"))
                    Response.Redirect("~/AdminForm/AdminHome.aspx");
                if (Session["Role"].ToString().Equals("User"))
                    Response.Redirect("~/Form/Progress.aspx");
            }
        }
    }

谢谢!

.NET Web 表单应用程序不断注销用户

您是否在 web.config 文件中设置了超时?

system.web>
   <authentication mode="Forms">
      <forms timeout="50000000" slidingExpiration="true"/>
   </authentication>
 </system.web>

如果您的用户在网站上超过 20 分钟,它将注销。 您可以尝试web.config或IIS设置,这将无济于事。

我发现处理此问题的最佳方法是使用KeepAlive页面和隐藏的iFrame,该页面每18分钟回发一次服务器。这将使工作进程保持运行,并且站点永远不会超时。

我在面向内部的站点上使用过此方法,因为最终用户希望在站点 8 到 5 上而不注销。

此链接中的示例项目