C# Web 应用用户无需任何理由即可注销

本文关键字:理由 注销 任何 Web 应用 用户 | 更新日期: 2023-09-27 18:31:57

我有一个应用程序已经开发并安装在服务器上。然后,我们需要在另一个网络服务器上安装相同的应用程序,从迁移开始,我们开始发现几个问题。

目前,应用程序用户在没有任何原因的情况下注销(没有错误,只是注销)。这是 Web.config,我还设置了 sessionState timeout="1800",但在 2 分钟不活动后我被踢出局。

无法在服务器上调试它,因为服务提供商没有调试工具,而且我不是 .net 开发人员,我找不到任何解决方案。查看Microsoft文档,我没有找到任何内容,日志不报告错误或内存限制。

我能做什么?我可以给你所有你需要了解或帮助我找到这个问题的解决方案,只要问我。

谢谢!

C# Web 应用用户无需任何理由即可注销

为了

解决此问题,您可以做两件事。只有 If(您正确设置了表单身份验证和其他属性)。

  1. 在您的 web.config 中创建计算机密钥。
  2. 将应用程序池进程空闲时间更改为更高的限制。默认情况下为 20 分钟。

当进程保持空闲状态超过 20 分钟时,它会终止工作进程并重新生成计算机密钥。而客户端计算机上的现有 cookie 使用较旧的计算机密钥进行加密。由于它不会使用最近生成的新计算机密钥进行解密,因此用户将被发送到登录页面以重新输入凭据,因此创建新的持久性cookie也是如此。

您的 web.config 设置为使用存储在 cookie 中的 SessionID。 使用您的网络浏览器开发人员工具验证ASP.NET_SessionID Cookie 的超时。下次你被踢出去时,饼干可能不再存在。

查看您的 web.config,您似乎没有使用 ASP.net 身份验证。 如果你是,它看起来像这样。

<authentication mode="Forms">
   <forms name="appname" defaultUrl="Default.aspx" loginUrl="Login.aspx" 
       protection="All" path="/" timeout="480" slidingExpiration="true"/>
</authentication>

模式可以设置为 Windows|表单|护照|没有。 "你的"设置为"无"。 您可能仍在使用身份验证,但必须在 IIS 中设置。