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。