8

我需要从我的 中启用 Windows 身份验证web.config,而无需在 IIS 中进行设置。

我有以下元素web.config

  authentication mode="Windows
  identity impersonate="true 

但是 Windows 身份验证不起作用。我该如何解决这个问题?

4

4 回答 4

12

对于 IIS Express

你可以在这里设置。您可能还希望禁用匿名访问

为 IIS Express 设置 Windows 身份验证

对于 IIS

我发现有必要将其设置为system.webServer

<system.webServer>
    […]
    <security>
      <authentication>
        <anonymousAuthentication enabled="false"/>
        <windowsAuthentication enabled="true"/>
      </authentication>
    </security>
  </system.webServer>

这与@Dimitar 建议的作用几乎相同 - 使用 IIS 管理器更改设置。不同之处在于配置文件避免了手动步骤 - 但添加了下一个:

笔记:

默认情况下,IIS 功能委派会锁定其中一些设置(基本和 Windows 身份验证),因此您需要转到 IIS 服务器的根目录,并启用这些设置为read/write。例如:

功能委派 - 允许对 auth 部分进行读/写

访问 Feature Delegation的更详细描述在这里

于 2015-08-26T05:23:49.830 回答
8

如果您的意思是从 Visual Studio(IISExpress - 而不是 IIS)运行您的项目,那么您可以尝试执行以下操作:

在 Visual Studio -> 单击项目的根目录 -> 按 F4 以打开属性窗格 -> 查找“Windows 身份验证”并标记为“已启用” -> 运行您的项目。

于 2013-05-29T14:38:44.680 回答
5

不幸的是,您必须使用 IIS 来启用 Windows 身份验证。您不能单独在 Web.config 中执行此操作。(至少到 IIS 8.5,即本文的当前版本。)

这是因为用于启用 Windows 身份验证 ( <system.webServer><security><authentication><windowsAuthentication>) 的 Web.config 元素只能在 applicationHost.config (C:\Windows\System32\inetsrv\config) 中定义。

于 2015-05-12T16:19:13.183 回答
2

如果 IIS 上没有安装 windows 身份验证,它将无法工作。如果在 web.config 中安装设置应该没问题

于 2013-05-29T13:23:52.340 回答