微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决IIS,新站点绑定拒绝 Windows 凭据

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

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

*:8445 (https) - 绑定证书:devclientXXX.domain.com

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

*:8445 (https) - 绑定证书:devclientXXX.domain.com

*:443 (https) - 绑定证书:dev-localhost

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

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

与此同时,使用原始绑定进行浏览时,我的 Windows 凭据已被接受,而无需任何重新输入它们的提示

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

有人对此问题的可能原因有什么建议吗?

-S

解决方法

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

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
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。