IIS,新站点绑定拒绝 Windows 凭据

IIS, new site binding rejects Windows credentials

我在 IIS 中有一个 Web 应用程序需要使用 Windows 身份验证对用户进行身份验证。这通常工作正常,但是当我尝试引入新的站点绑定时,身份验证停止工作。

该应用程序当前 运行 在本地开发客户端上,但站点绑定基于具有与本地计算机名称匹配的“颁发给”名称的证书。此站点下需要 Windows 身份验证 运行 的应用程序 运行 没问题。

*:8445 (https) - binding certificate: devclientXXX.domain.com

出于各种原因,我们想用所有开发客户端通用的别名替换该绑定,即 dev-localhost。所以我得到了一个新的证书并设置了一个新的绑定,所以我们有这些:

*:8445 (https) - binding certificate: devclientXXX.domain.com

*:443 (https) - binding certificate: dev-localhost

新站点绑定允许我浏览匿名身份验证可用的资源。

但是,在尝试浏览 Windows 身份验证资源时,我的凭据被拒绝:在 Chrome 中,系统反复提示我输入我的凭据,但没有被接受。

与此同时,使用原始绑定的浏览与以前一样,我的 Windows 凭据被接受,没有任何提示重新输入它们。

据我所知,这两个绑定仅在所选证书上有所不同。

有没有人对这个问题的可能原因有任何建议?

-S

我改进了我的 google 查询并发现了这个:

https://serverfault.com/questions/722722/windows-auth-in-iis-does-not-work-when-browsing-to-the-website-on-the-server-run

这提示我修改注册表以添加以下内容:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

(Multi-String Value) BackConnectionHostNames = dev-localhost

这实际上解决了我的问题!

编辑:这是执行此操作的 PowerShell 代码段。

$hostName = "dev-localhost"

$value = (Get-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\MSV1_0").BackConnectionHostNames

if (-not($value | ? { $_ -eq $hostName }))
{
    $value += $hostName

    $item = New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\MSV1_0" -Name "BackConnectionHostNames" -Value $value -PropertyType MultiString -Force
}