1

我有一个使用 Windows 身份验证的 ASP.NET MVC 3 应用程序,在 IIS 7.5 中配置。当用户第一次加载页面时,它会提示用户输入他们的 Windows 凭据。

现在,我想在 XX 分钟内设置“会话”超时,这样如果超时时间已过,页面将再次提示他们输入凭据。

我尝试在要保护的页面的 page_load 方法中设置“Session.timeout = XX”。

我注意到 Global.Asax 中的“Session_End”方法确实触发了,但即使在 Session 结束后,Authentication Ticket 似乎也“保持有效”。

有没有办法通过更改 Web.Config 中的配置或通过 IIS 来强制页面在指定的超时时间再次提示 Windows 凭据?

请告诉我。

4

2 回答 2

0

据我所知,没有简单的方法可以实现这一目标。我读过有人试图手动控制何时发送 401,但据我所知,我还没有找到任何可靠的解决方案。

于 2012-12-19T21:46:09.057 回答
0

使用 Windows 身份验证时,您无法控制允许的会话持续时间,因为这是身份验证协议 (Kerberos) 的一部分。有很多方法和解决方法,但没有一个是直截了当的。

似乎强制客户端document.execCommand("ClearAuthenticationCache");可能最接近您的需求。

于 2012-12-19T21:48:20.680 回答