gpt4 book ai didi

authentication - 在达到 session 和身份验证票证超时值之前,用户被迫随机重新登录

转载 作者:行者123 更新时间:2023-12-04 15:38:13 24 4
gpt4 key购买 nike

我收到用户的报告和投诉,他们将使用屏幕并在下一个请求时立即返回登录屏幕。它不会一直发生,而是随机发生。查看 Web 服务器后,应用程序事件日志中显示的错误是:

事件代码:4005
事件消息:请求的表单例份验证失败。原因:提供的票证已过期。

我读到的一切都是从人们询问网络花园或负载平衡开始的。我们没有使用其中任何一个。我们是带有 IIS6 的单个 Windows 2003(32 位操作系统,64 位硬件)服务器。这也是该服务器上唯一的网站。

此行为不会为用户生成任何应用程序异常或可见问题。他们只是被引导回登录屏幕并被迫登录。可以想象,这对我们的用户来说非常烦人且适得其反。

这是我在 web.config 中为根目录中的应用程序设置的内容:

<authentication mode="Forms">
<forms name=".TcaNet"
protection="All"
timeout="40"
loginUrl="~/Login.aspx"
defaultUrl="~/MyHome.aspx"
path="/"
slidingExpiration="true"
requireSSL="false" />
</authentication>

我还读到,如果您的某些位置设置不再存在或为虚假设置,则可能会遇到问题。我的路径属性都是有效的目录,所以应该不是问题:
<location path="js">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="anon">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="App_Themes">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="NonSSL">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

我唯一不清楚的是,我的身份验证票证表单属性中的超时值是否必须与我的 session 超时值(在 IIS 中的应用程序配置中定义)相同。我读过一些内容,说您应该让身份验证超时 (40) 比 session 超时 (45) 短,以避免可能出现的并发症。无论哪种方式,我们都有用户在上次操作后一两分钟被踢到登录屏幕。所以 session 绝对不应该过期。

2009 年 2 月 23 日更新:我已经将 session 超时和身份验证票超时值都设置为 45,但问题似乎仍在发生。

应用程序中唯一的其他 web.config 位于托管社区服务器的 1 个虚拟目录中。那 web.config 的认证设置如下:
<authentication mode="Forms">
<forms name=".TcaNet"
protection="All"
timeout="40"
loginUrl="~/Login.aspx"
defaultUrl="~/MyHome.aspx"
path="/"
slidingExpiration="true"
requireSSL="true" />
</authentication>

虽然我不相信它适用,除非您在网络花园中,但我在两个 web.config 文件中设置的两个机器键值都相同(为方便起见,已删除):
<machineKey 
validationKey="<MYVALIDATIONKEYHERE>"
decryptionKey="<MYDECRYPTIONKEYHERE>"
validation="SHA1" />

<machineKey
validationKey="<MYVALIDATIONKEYHERE>"
decryptionKey="<MYDECRYPTIONKEYHERE>"
validation="SHA1"/>

对此的任何帮助将不胜感激。这似乎是产生大量 Google 结果的问题之一,到目前为止,这些结果似乎都不适合我的情况。

最佳答案

检查应用程序池的最大工作进程属性也可能是值得的。如果您正在使用内存 session 并且有多个作为最大工作进程的进程,您可以发现 session 问题,因为用户请求由不知道其 session 的不同线程处理。

关于authentication - 在达到 session 和身份验证票证超时值之前,用户被迫随机重新登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com