加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

身份验证 – 在达到会话和身份验证票证超时值之前,用户被迫随机

发布时间:2020-12-16 03:50:41 所属栏目:asp.Net 来源:网络整理
导读:我正在收到用户的报告和投诉,他们将使用屏幕并在下次请求时立即返回登录屏幕.它不会一直发生,而是随机发生.查看Web服务器后,应用程序事件日志中显示的错误是: 活动代码:4005 事件消息:请求的表单身份验证失败.原因:提供的故障单已过期. 我读到的一切都是
我正在收到用户的报告和投诉,他们将使用屏幕并在下次请求时立即返回登录屏幕.它不会一直发生,而是随机发生.查看Web服务器后,应用程序事件日志中显示的错误是:

活动代码:4005
事件消息:请求的表单身份验证失败.原因:提供的故障单已过期.

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

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

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

<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>

我唯一不清楚的是,我的auth票证的forms属性中的超时值是否必须与我的会话超时值(在IIS中的应用程序配置中定义)相同.我读过一些事情,说你应该让认证超时(40)比会话超时(45)更短,以避免可能出现的并发症.无论哪种方式,我们都有用户在最后一次操作后的一两分钟内被踢到登录屏幕.所以会议肯定不会到期.

更新2/23/09:我已经将会话超时和身份验证票据超时值设置为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结果的问题之一,到目前为止,这些问题似乎都不符合我的情况.

解决方法

还可能需要检查应用程序池的Maximum Worker Processes属性.如果您在内存会话中使用并且具有多个作为最大工作进程,则可以查找会话问题,因为用户请求由不知道其会话的其他线程处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读