windows 凭据 IIS 10.0 的问题

Problems with windows credentials IIS 10.0

我有一个 .NET core 3.1 razor pages 网站。我正在使用 windows 凭据(使用 Active Directory)进行 身份验证 并且我正在使用策略管理 授权 。 使用 IIS express(您开发时使用的那个可以正常工作。显示我的用户名

现在我正在使用 IIS 管理器使用我的机器 IP 托管此站点,例如 'xxx.xxx.xxx.xxx:portNumber'。如果启用了匿名身份验证,这将加载,但如果我包含 windows 凭据,它将失败。 我按照这里的指南 --> https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1&tabs=visual-studio 基本上我做了前面 link 中显示的内容。 (创建了 web.config 文件并按照此处列出的步骤进行操作

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <security>
        <authentication>
          <anonymousAuthentication enabled="false" />
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
  </location>
</configuration>

当我尝试在我的站点的 IIS 管理器中输入身份验证选项时出现以下错误。

这个配置节不能用在这个路径上。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或者由带有 overrideMode="Deny" 的位置标签或旧版 allowOverride="false" 明确设置 点击接受按钮后,以下 table 加载。

当我尝试访问该网站时,它正在抛出 错误 HTTP 500.19 - 内部服务器错误

模块:WindowsAuthenticationModule

通知:AuthenticateRequest

配置来源

  <anonymousAuthentication enabled="false" />
   **<windowsAuthentication enabled="true" />** --> *this line is in red*
  </authentication>

我在这里更改了 applicationhost.config 文件中的几行。

<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />

我将这两行从 Deny 更改为 Allow。重启,还是不行。

我也激活了一些 windows 功能,如下所示

我终于解决了。我提到了这个 post This configuration section cannot be used at this path - Windows 2016

我在位于的文件中设置了以下条目 C:\Windows\System32\inetsrv\config\applicationHost.config

<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="ipSecurity" overrideModeDefault="Allow" />

我错误地编辑了我文档文件夹中 IISExpress 中的 applicationHost.config。这就是为什么这不起作用。