【发布时间】:2017-04-17 11:34:49
【问题描述】:
我知道这个问题被问了很多,但我一直没有找到可行的解决方案。
我正在尝试创建一个要在其中使用 Windows 身份验证的 Intranet 网站。但由于某种原因,我无法进行身份验证。
我在 MSDN、Stack Overflow、博客等上进行了广泛搜索,并尝试了建议的解决方案 - 无济于事。
这是我正在使用的:
- IIS 10.0.14393.0(真正的 IIS,不是 express)
- Windows 10 (1607)
- .NET Framework 4.6.1
- ASP.NET MVC 5.2.3
在 Visual Studio 中,我创建了一个新的空 ASP.NET Web 应用程序并在 MVC 中打勾。然后我添加了一个非常简单的(Hello World)控制器、模型和视图。
最后,我在 system.web 部分的 web.config 中添加了以下内容(许多人声称这是正确的解决方案):
<authentication mode="Windows"/>
<authorization>
<allow users="DOMAIN\USER"/>
<deny users="*"/>
</authorization>
在 IIS 中,我创建了一个新网站,将其指向 Web 应用程序文件夹,并设置了一个主机名,并将其添加到“hosts”文件中。
然后我启用了“身份验证”部分下的“Windows 身份验证”功能。
在 Internet Explorer(或 Firefox 或 Chrome)中,我使用到控制器的路由导航到网站,然后系统会提示我输入凭据。我输入域用户的凭据,但我被拒绝访问。
有些人声称也应该启用 IIS 中的“匿名身份验证”,但对我来说这根本没有帮助。同样的问题。
此外,有些人声称它有助于转到“提供程序”以获取“Windows 身份验证”并将它们重新排序为:NTLM、协商。对我来说没有任何改变。
然后我尝试将 web.config 中的授权更改为:
<allow users="*"/>
也无济于事。
这就像 auth-thing 根本不与 AD 对话。
根据描述的场景,有人知道如何正确设置吗?
更新(2016 年 12 月 8 日): 我找到了 Scott Allen 的一段复数视频(引用自 asp.net/mvc 网站),他在其中解释了 MVC5 的不同身份验证选项,当涉及使用 Windows 身份验证创建 Intranet 站点时,事实证明应该这样做就像我在这个问题中描述的一样。唯一的事情是,当我尝试它时(我使用了 MVC 的 VS 模板并选择了 Windows 身份验证),它只适用于 IISExpress - 而不是真正的 IIS(即使在同一台机器上并且 IISExpress 和 IIS 设置都使用 Windows 身份验证而不是允许匿名)。太令人沮丧了。
【问题讨论】:
标签: asp.net iis windows-authentication