我有一个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用户(这也是该站点所在的位置)。