asp.net mvc4中的web.config中的Windows身份验证

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身份验证不起作用.我该如何解决这个问题?

Ove*_*lew 9

对于IIS Express

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

为IIS Express设置Windows身份验证

对于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服务器的根目录,并启用它们进行读/写.例如:

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

有关访问功能委派的更详细说明,请参见此处.


Dim*_*rov 7

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

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


Kei*_*ith 5

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

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


Pio*_*app 2

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