我有一个运行本地Windows帐户的Windows服务托管的wcf应用程序.我是否需要为此帐户设置SPN?如果是这样,SPN需要设置的协议是什么?我知道如何通过HTTP为服务做这个,但从来没有为net.tcp做过.
将服务帐户更改为AD帐户并注册SPN,如图所示.使用您自己的服务名称,例如fooservice
setspn -A fooservice/servermachinename domain\serviceAccountName
setspn -A fooservice/servermachinename.fullyqualifieddomainname domain\serviceAccountName
在客户端配置集中:
<identity>
<serviceprincipalname value="fooservice/servermachinename" />
</identity>
Run Code Online (Sandbox Code Playgroud)
默认情况下(即开箱即用)net.tcp 服务是不安全的,并且根本不执行任何身份验证。因此,您不需要(实际上也不能)设置服务主体名称。
如果需要进行身份验证,请检查MSDN 上的net.tcp 安全模式。了解不同组合的最好方法就是进行实验!