首页 > 解决方案 > Windows 身份验证无法验证系统用户或 ADFS 用户

问题描述

我有一个 aspnetcore2.1 api,并使用以下代码配置了 Windows 身份验证。这应该适用于位于同一网络中的 ADFS 服务器中的所有用户,并且我尝试从中访问站点的计算机包含在 ADFS 服务器的同一域中。

在应用程序的 ConfigureServices 部分中

        services.AddAuthentication(IISDefaults.AuthenticationScheme);
        services.AddHttpContextAccessor();

并在配置部分

        app.UseAuthentication();

我在部署时还为应用程序添加了一个 web.config 文件,如下所示

<location path="." inheritInChildApplications="false">
<system.webServer>
  <handlers>
    <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
  </handlers>
  <aspNetCore processPath="dotnet"
              arguments=".\sampleapi.dll"
              stdoutLogEnabled="true"
              stdoutLogFile=".\logs\stdout"
              forwardWindowsAuthToken="true"/>
</system.webServer>
<system.web>
  <authentication mode="Windows"/>
  <authorization>
    <allow users="*"/>
    <allow roles="*"/>
  </authorization>
</system.web>

现在,当我尝试访问该应用程序时,该站点正在按预期要求提供凭据。

我尝试了机器和 ADFS 服务器帐户中的不同用户帐户,但它们都没有工作。有什么我错过的吗?我已确保 NTLM 是 IIS 配置中提供程序列表中的第一个。我将应用程序池标识更改为自定义用户,该用户来自对当前计算机具有管理员访问权限的 ADFS 用户(这也是站点所在的位置)。

标签: asp.net-coreiis-7windows-authentication

解决方案


推荐阅读