Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS 7.5中的MVC5与Windows身份验证:无法登录_C#_Asp.net Mvc_Authentication_Iis - Fatal编程技术网

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

C# IIS 7.5中的MVC5与Windows身份验证:无法登录,c#,asp.net-mvc,authentication,iis,C#,Asp.net Mvc,Authentication,Iis,我正在尝试保护Asp.NETMVC5应用程序以使用Windows身份验证 我主要关注这篇文章: 当我进入页面时,我会看到登录/用户名文本框: 我输入了正确的用户名/密码,我再次被要求提供相同的详细信息。一次又一次。我尝试在登录之前添加机器名(本地机器没有域),但没有成功 在web.config中,我有: <authentication mode="Windows" /> 如果我关闭任何身份验证(启用匿名)-一切正常。我已经尝试过为网站的应用程序池使用不同的用户-没有变化。我已将[

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

我主要关注这篇文章:

当我进入页面时,我会看到登录/用户名文本框:

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

在web.config中,我有:

<authentication mode="Windows" />
如果我关闭任何身份验证(启用匿名)-一切正常。我已经尝试过为网站的应用程序池使用不同的用户-没有变化。我已将
[AllowAnonymous]
属性添加到控制器操作-无更改。我尝试过[Authorize(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

我没有主意了。您有什么建议吗?

由于您请求集成身份验证,登录提示意味着它不起作用。我猜Chrome不支持它,从登录提示看,我怀疑你正在使用Chrome


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

我已找到问题的来源-主机文件。 每次我做网站开发时,我都会在hosts文件中创建一个记录,所以它对用户稍微友好一些

一旦我尝试通过
http://localhost:81
windows身份验证工作正常,从第一次尝试时就获得了密码


不知道为什么通过主机通过域名无法实现。但我可以猜到IIS与站点域名和本地工作组/域名混淆了。某种类型的安全功能。

根据您的链接,FileAuthorizationModule返回文件夹上的ACL。你检查过那条路了吗?@MikeCheel我确实以“LocalSystem”和我自己(Win7中的管理员)的身份运行了应用程序池,结果没有变化。我将尝试为应用程序文件夹授予全局读取权限-尚未检查。我已尝试IE-结果相同。域是不可能的-单个开发人员主计算机,但当我部署到域服务器时-相同的行为。我确实尝试了基本身份验证-请求登录时使用不同的文本,但结果相同。。然而,我从未为基本身份验证设置登录/pwd。找到了答案-我是通过
hosts
文件中的记录访问站点的。我一输入
localhost:88/
,一切都如期进行。真是太棒了。我有完全相同的问题-使用主机文件。你的建议很管用。我需要在IIS中调整绑定-使用空主机名,并将端口设置为81。发展没有什么大不了的。。。谢谢@从我的时间戳判断,我也为此损失了2天的时间。
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