iis 在URL中使用DNS后请求得到401 -未经授权,但如果我在URL中使用实际的服务器名称,工作正常

enyaitl3  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(132)

我们从控制器A(服务器端)向控制器B调用API
两者都在IIS中配置为分离站点

站点A -安全配置:

<security>

      <authentication>

        <windowsAuthentication enabled="true">

          <providers>

            <clear />

            <add value="NTLM" />

            <add value="Negotiate" />

          </providers>

        </windowsAuthentication>

        <anonymousAuthentication enabled="false" />

      </authentication>

    </security>

站点B -安全配置:

<security>

                     <authentication>

                           <anonymousAuthentication enabled="false" />

                           <windowsAuthentication enabled="true"/>

                           <basicAuthentication enabled="true"/>

                     </authentication>

</security>

此处为请求代码:`

HttpClientHandler httpClientHandler = new HttpClientHandler()
            {
               Credentials = new CredentialCache() {
                    {
                        httpRequest.RequestUri,
                        "NTLM",
                        CredentialCache.DefaultNetworkCredentials
                    } }
            };        

            var response = await new HttpClient(httpClientHandler).PostAsync(url, data);

'当url为:https://serverName.domain:4444/home/apiName--一切正常
但是当https://VipName.domain:4444/home/apiName--得到401时
谢谢你的帮助!!!
在IIS日志中,我们可以看到用户未通过

6tdlim6h

6tdlim6h1#

要让浏览器发送凭据,它必须是一个受信任的站点。有可能“serverName.domain”是受信任的,但“VipName.domain”不是。
Chrome和Edge使用“Internet选项”中的“受信任的站点”:

  1. Windows键+ R并运行“inetcpl.cpl”
    1.单击“安全”选项卡
    1.单击“可信站点”,然后单击“站点”按钮
    1.验证“VipName.domain”是否在列表中,如果不在则添加它。您可以使用通配符,如“https://*.domain”
    Firefox有自己的设置,您可以在这里看到:https://superuser.com/a/878494/233663

相关问题