servicePrincipalName应该有什么价值?

我正在尝试在我的服务上设置客户端模拟。

我需要为我的服务endPoint的servicePrincipalName设置一个值

我正在看这篇MSDN文章,但仍然无法弄明白

我的服务托管在服务器上的控制台应用程序中,我们称之为ServerName1。
Uri是: net.tcp://ServerName1:9990/TestService1/

具体应该是我的servicePrincipalName是什么?

我试过了,没有任何喜悦:

    

您希望为用户提供服务的用户的名称(在其下执行)。 因此,如果您想在“本地网络”凭据下执行它,上面的XML应如下所示:

    

配置servicePrincipleName是一个难以用几句话来描述它的主题也许这些文章会有所帮助:

  • 覆盖身份validation服务的身份
  • Windows Communication Foundation中的安全性

最有可能的是,您需要按以下方式配置它

    

我们通常使用userPrincipalName而不是servicePrincipalName,就像这样

    

有关如何构建SPN的完整指南,请查看以下文章:

https://geertbaeten.wordpress.com/2013/06/03/kerberos-authentication-and-delegation-serviceprincipalnames/

http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/the-biggest-mistake-serviceprincipalname-s.aspx

这些更多是关于基础设施方面(ADDS),但第一部分对程序员也非常有用

使用IIS托管的WCF服务时。

我们使用“host / computerName”作为进行匿名连接。 在您的WCF应用程序内部,您可以设置应用程序池,例如“iis apppool \ defaultAppPool”,此用户将是真正的连接用户。

在下面的图像/ C ?????? DataService是应用程序名称(“Tom的TestService1”)应用程序池:C ????池可以是“DefaultAppPool”,在“应用程序用户”的情况下(传递身份validation) )“,您将使用” IIS AppPool \ DefaultAppPool “作为用户授予特定资源的权限,如文件或SQL Server连接字符串。

而且,即使使用匿名身份validation,您也可以将“表单授权”设置为WCF应用程序内的特定资源,例如“MasterSettings.svc”。

在此处输入图像描述

希望这可以帮助