繁体   English   中英

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

[英]MVC5 vs Windows Authentication in IIS 7.5: unable to login

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

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

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

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

在web.config我有:

<authentication mode="Windows" />

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

在此输入图像描述

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

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);
    }

如果我关闭任何身份验证(启用匿名) - 一切正常。 我尝试过为网站的应用程序池使用不同的用户 - 没有变化。 我已将[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身份验证工作正常并从第一次尝试获取密码。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM