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 查询并发现了这个:
这提示我修改注册表以添加以下内容:
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
}
我在 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 查询并发现了这个:
这提示我修改注册表以添加以下内容:
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
}