zra*_*zdn 7 c# authentication iis asp.net-mvc-4
我需要从我启用Windows身份验证web.config,而不在IIS中设置它.
我有以下元素web.config:
authentication mode="Windows
identity impersonate="true
Run Code Online (Sandbox Code Playgroud)
但是Windows身份验证不起作用.我该如何解决这个问题?
对于IIS Express
你可以在这里设置它.您可能还希望禁用匿名访问
对于IIS
我发现有必要设置它 system.webServer
<system.webServer>
[…]
<security>
<authentication>
<anonymousAuthentication enabled="false"/>
<windowsAuthentication enabled="true"/>
</authentication>
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
这与@Dimitar建议几乎完全相同 - 使用IIS管理器更改设置.区别在于配置文件避免了手动步骤 - 但是添加下一个:
注意:
默认情况下,IIS功能委派会锁定其中一些设置(基本和Windows身份验证),因此您需要转到IIS服务器的根目录,并启用它们进行读/写.例如:
如果你的意思是从Visual Studio(IISExpress而不是IIS)运行你的项目,那么你可以尝试执行以下操作:
在Visual Studio中 - >单击项目的根目录 - >按F4以打开属性窗格 - >查找"Windows身份验证"并标记为"已启用" - >运行项目.
不幸的是,您必须使用 IIS 来启用 Windows 身份验证。您不能单独在 Web.config 中执行此操作。(至少到 IIS 8.5,即本文发布的当前版本。)
这是因为用于启用 Windows 身份验证 ( <system.webServer><security><authentication><windowsAuthentication>)的 Web.config 元素只能在 applicationHost.config (C:\Windows\System32\inetsrv\config) 中定义。