我需要从我的 中启用 Windows 身份验证web.config
,而无需在 IIS 中进行设置。
我有以下元素web.config
:
authentication mode="Windows
identity impersonate="true
但是 Windows 身份验证不起作用。我该如何解决这个问题?
我需要从我的 中启用 Windows 身份验证web.config
,而无需在 IIS 中进行设置。
我有以下元素web.config
:
authentication mode="Windows
identity impersonate="true
但是 Windows 身份验证不起作用。我该如何解决这个问题?
对于 IIS Express
你可以在这里设置。您可能还希望禁用匿名访问
对于 IIS
我发现有必要将其设置为system.webServer
<system.webServer>
[…]
<security>
<authentication>
<anonymousAuthentication enabled="false"/>
<windowsAuthentication enabled="true"/>
</authentication>
</security>
</system.webServer>
这与@Dimitar 建议的作用几乎相同 - 使用 IIS 管理器更改设置。不同之处在于配置文件避免了手动步骤 - 但添加了下一个:
笔记:
默认情况下,IIS 功能委派会锁定其中一些设置(基本和 Windows 身份验证),因此您需要转到 IIS 服务器的根目录,并启用这些设置为read/write。例如:
访问 Feature Delegation的更详细描述在这里。
如果您的意思是从 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) 中定义。
如果 IIS 上没有安装 windows 身份验证,它将无法工作。如果在 web.config 中安装设置应该没问题