我正在尝试在我的服务上设置客户端模拟。
我需要为我的服务端点
的servicePrincipalName设置一个值我正在看这个MSDN article,但仍然无法弄清楚
我的服务托管在我们称之为ServerName1的服务器上的控制台应用中
Uri是:net.tcp://ServerName1:9990/TestService1/
。
我的servicePrincipalName具体应该是什么?
我试着,没有快乐:
<identity>
<servicePrincipalName value="ServerName1" />
</identity>
答案 0 :(得分:9)
您希望服务于用户的用户的名称(在其下执行)。因此,如果您想在“本地网络”凭据下执行它,上面的XML应如下所示:
<identity>
<servicePrincipalName value="Local Network" />
</identity>
答案 1 :(得分:9)
配置servicePrincipleName是一个难以用几句话来描述它的主题 也许这些文章会有所帮助:
最有可能的是,您需要按以下方式配置
<identity>
<servicePrincipalName value="HOST/ServerName1:9990" />
</identity>
我们通常使用userPrincipalName而不是servicePrincipalName,就像这样
<identity>
<userPrincipalName value="account@domain.com" />
</identity>
答案 2 :(得分:1)
有关如何构建SPN的完整指南,请查看以下文章:
这些更多是关于基础设施方面(ADDS),但第一部分对程序员来说非常有用
答案 3 :(得分:0)
使用IIS托管的WCF服务时。
我们使用“host / computerName”作为<servicePrincipalName />
进行匿名连接。在您的WCF应用程序内部,您可以设置应用程序池,例如“iis apppool \ defaultAppPool”,此用户将是真正的连接用户。
在下图中 / C ?????? DataService是应用程序名称(“Tom's TestService1”) 应用程序池:C ????池可以是“DefaultAppPool”,对于“应用程序用户(传递身份验证)”,您将使用“ IIS AppPool \ DefaultAppPool ”作为用户授予特定资源的权限,如文件或SQL Server连接字符串。
而且,即使使用匿名身份验证,您也可以将“表单授权”设置为WCF应用程序内的特定资源,例如“MasterSettings.svc”。
希望这会有所帮助