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

时间:2013-05-29 13:21:37

标签: c# authentication iis asp.net-mvc-4

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

我在web.config

中有以下元素
  authentication mode="Windows
  identity impersonate="true 

但是Windows身份验证无效。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:7)

对于IIS Express

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

Setting Windows auth for IIS Express

适用于IIS

我发现有必要在system.webServer

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

这与@Dimitar建议几乎完全相同 - 使用IIS管理器更改设置。区别在于配置文件避免了手动步骤 - 但是下一步添加:

注意:

默认情况下, IIS功能委派锁定其中一些设置(基本和Windows身份验证),因此您需要转到IIS服务器的根目录,并启用它们< EM>读/写。 E.g:

Feature delegation - Allowing read/write for auth section

accessing Feature Delegation is here的详细说明。

答案 2 :(得分:4)

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

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

答案 3 :(得分:1)

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