我们对一个同样使用无 cookie 会话的 ASP.NET 应用程序使用 Windows 身份验证,因此会话 ID 被编码到 URL 中。如果用户通过根 URL 登录,则没有问题。但他们还使用包含会话 ID 的 URL 将应用程序保存到书签中,并且此会话过期后,站点将返回 401 错误,该错误永远无法满足。
为了避免这种情况,我们在基本 URL 上添加了 401 重定向,这在一段时间内有效。但最终,可能是在重新启动后(我们无法控制此服务器的重新启动),Windows 身份验证完全停止工作。用户会看到登录弹出窗口,但这永远不会成功。我们必须删除 401 重定向,在基本 URL 上登录,然后恢复重定向。现在应用程序又可以正常工作了。
我感觉我们做错了什么,但我不确定是什么。特别是 401 重定向感觉像是黑客行为,但我想不出其他方法让旧会话重定向回应用程序以获取新会话。