2016-09-28 66 views
1

当使用.Net框架(C#以及Powershell)访问Kerberized HTTP服务时,我遇到了不一致的行为。它涉及到我们的DNS配置,以及我们使用CNAME代替A记录的Kerberized服务。 Microsoft建议的解决方法是确保您的主机名使用A记录,但这不是我公司环境中的选项。在.Net中强制使用特定的SPN URL

我需要一个解决方案,允许我强制特定的URL的特定SPN​​,确保我使用相同的主机名作为URL的SPN。或者,也可以选择强制执行一致策略以将URL解析为SPN。

回答

1

与往常一样,一旦你知道你在找什么,该解决方案也很容易找到;-)在这个例子中,我使用的是8080端口HTTPS Web服务:

C#:

System.Net.AuthenticationManager.CustomTargetNameDictionary 
    .Add("https://my-service.tld:8080/", "HTTP/my-service.tld"); 

PowerShell的:

[System.Net.AuthenticationManager]::CustomTargetNameDictionary. 
    Add("https://my-service.tld:8080/", "HTTP/my-service.tld") 

不要忘记结尾的斜线。如果使用端口80

引用删除:8080

+1

警告:看起来净4.5.1忽略增加的CustomTargetNameDictionary。 4.5似乎工作正常。 – Saustrup

+0

我可能也会看到这一个 - 你知道它是否会影响4.5.1版本的版本,或者他们是否记录了一个bug? – Dave

相关问题