【发布时间】:2016-04-04 19:56:58
【问题描述】:
我也见过其他类似我的问题,但它们与我的不完全一样。我通过 web.config 文件中的以下条目使用标准 ASP.NET 身份验证:
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="login.aspx" timeout="3600" />
</authentication>
登录.aspx.cs
accountID = myReader["AccountID"].ToString();
Session["AccountID"] = accountID;
我用 1 和 5 的值对此进行了测试,它的工作原理应该是这样。将其设置为 3600 并离开半小时,当我重新加载页面时,它过期并重定向我登录。我阅读了有关 IIS 会话状态设置的信息。我在尝试 1 分钟和 5 分钟之前禁用了这些,它似乎有效。只是长时间不工作。最初 IIS 设置为进程中,模式为使用 cookie,超时为 20 分钟。将其更改为 3600 以匹配 web.config 并且它超时太早。禁用它,它的工作时间间隔很短,似乎不到 30 分钟。
当我在 IIS 中更改这些设置时,是否需要重置 IIS?那么当我认为它被禁用时,这个设置仍然是 20 分钟吗?这似乎就是它的行为方式。
【问题讨论】:
-
会话超时源自
;将超时值更改为 60 并尝试 -
我认为您混淆了 ASP.NET 表单身份验证和 ASP.NET 会话。这些是完全不同的概念。
-
两个正确的 cmets。我雇了一个人来创建身份验证系统并登录,因为我自己没有时间研究它。不确定他们做得对。