需要用户使用NTLM重新进行身份验证

时间:2010-05-24 17:38:21

标签: asp.net asp.net-mvc authentication windows-authentication ntlm

我是一个asp.net mvc 2.0站点的NTLM(在web.config中验证=“windows”)。

现在,一旦用户登录,它就会让他们一次登录几个星期。

正在向共享使用登录服务帐户的计算机的用户开放该应用程序的使用。

为了处理这些用户,我需要网站每次都重新提示每个用户的AD凭据。 (网站上的活动必须链接到唯一标识的用户。)

感谢您提供的任何帮助。

Trey Carroll

3 个答案:

答案 0 :(得分:4)

执行此操作的方法是使用HTTP 401 challenge处理Http Authentication进程。

原则是拒绝凭证,即使它们有效强制所有用户(或某些用户依赖于AD属性/代码参数......)重新输入凭证。

您必须在响应中发送HTTP 401代码,以向浏览器指示不接受已发送的凭据。 根据浏览器配置,您必须发送1到3个401响应(您可以使用cookie来处理计数器)以强制浏览器提示用户,因此最多可以计算3个。

if (mycounter < 3)
{
    Response.StatusCode = 401; 
    Response.End();
}

NTLM Authentication Scheme for HTTP

IIS Authentication

答案 1 :(得分:2)

我会更改应用程序以使用Forms身份验证。您仍然可以针对AD验证凭据,但您将能够强制执行登录要求。

答案 2 :(得分:0)

您能否确保他们只使用不支持NTLM的浏览器?例如,当我访问我们的Sharepoint服务器时,我必须在Firefox中使用我的域凭据登录。