IIS 7.5中的MVC5与Windows身份validation:无法登录

我正在尝试保护Asp.Net MVC5应用程序以使用Windows身份validation。

我主要关注这篇文章: http : //msdn.microsoft.com/en-us/library/gg703322%28v=vs.98%29.aspx

当我转到页面时,我会看到登录/用户名文本框: 在此处输入图像描述

我键入了正确的用户名/密码,我再次被要求提供相同的详细信息。 一次又一次。 我曾尝试在登录前添加机器名称(本地机器没有域名),但没有运气。

在web.config我有:

 

在IIS 7.5中,我有以下用于身份validation:

在此处输入图像描述

我请求的控制器操作如下所示:

 public partial class HomeController : BaseController { private readonly IMediator mediator; public HomeController(IMediator mediator) { this.mediator = mediator; } public virtual ActionResult Index() { var model = mediator.Request(new MenuModelQuery()); return View(model); } 

如果我关闭任何身份validation(启用匿名) – 一切正常。 我尝试过为网站的应用程序池玩不同的用户 – 没有变化。 我已将[AllowAnonymous]属性添加到控制器操作 – 没有更改。 我试过[授权(User =“trailmax”)] – 没有改变行为。

Fiddler显示每次我输入用户名/密码时都会传递authenticate标头:

请求:

 GET http://reporting.dev/ HTTP/1.1 Host: reporting.dev Connection: keep-alive Cache-Control: max-age=0 Authorization: Negotiate TlRMTVNTUAABblahblahblahblah= Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 

响应:

 HTTP/1.1 401 Unauthorized Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 WWW-Authenticate: Negotiate TlRMTVNTUAACAAA_some_long_stringkLP9zgEAAAAA Date: Fri, 20 Dec 2013 18:44:50 GMT Content-Length: 341 Proxy-Support: Session-Based-Authentication 

我没有想法。 你能提出什么建议吗?

我找到了问题的根源 – 主机文件。 每次我进行网站开发时,我都会在hosts文件中创建一条记录,因此它更加用户友好。

一旦我尝试通过http://localhost:81访问该网站,Windows身份validation工作正常,并从第一次尝试中获取密码。

不知道为什么通过主机通过域名无法正常工作。 但我可以猜到IIS与网站域名和本地工作组/域名混淆了。 某种安全function。

由于您请求集成身份validation,因此登录提示意味着它不起作用。 我的猜测是,Chrome只是不支持它,而且根据登录提示,我怀疑你使用的是Chrome。

切换到IE并确保您在域中,或者如果您想坚持使用Chrome并仍然看到登录提示,请启用基本身份validation并禁用Windows身份validation。