【问题标题】:.net web forms application keeps logging out users.net Web 表单应用程序不断注销用户
【发布时间】:2015-03-11 21:31:39
【问题描述】:

我有一个 Web 表单应用程序,我在本地测试并运行良好。 当我将它上传到托管我的网站的网络服务器时,它通常只是注销用户(他们被重定向到 Account/Login.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");
            }
        }

    }

谢谢!

【问题讨论】:

  • 听起来像是会话超时问题。可能想查看您的 web.config 文件和/或托管它的服务器的 IIS 配置。
  • 不要使用 Session 进行身份验证...。这是非常不安全的,并且您会遇到此类问题,因为 IIS 可以随时回收您的工作进程(丢失您的会话)。您应该改为使用 FormsAuthentication 令牌,并使用基于角色的访问权限来控制授权
  • 埃里克,谢谢你的回答。我将身份验证从 Session 更改为 cookie,但有时仍会中断。它不会将我重定向到登录屏幕,而是将我重定向到具有 cookie 的角色的主页。例如,管理员主页是“AdminHome”。我单击“AddUser”页面,有时会被重定向到“AdminHome”,但并非总是如此。您知道是什么原因造成的吗?

标签: c# asp.net session session-timeout


【解决方案1】:

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

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

【讨论】:

  • 他没有使用表单身份验证,他使用会话变量来跟踪他的用户 ID
【解决方案2】:

如果您的用户在网站上停留超过 20 分钟,它将退出。您可以尝试 web.config 或 IIS 设置,它不会有帮助。

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

我在面向内部的网站上使用了这种方法,因为最终用户希望在不注销的情况下进入网站 8 到 5。

Sample project at this link

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 2021-10-22
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2021-01-16
    相关资源
    最近更新 更多