.net 为WCF配置传输安全性

.net 为WCF配置传输安全性,.net,wcf,.net,Wcf,我有一个承载WCF服务的windows服务,还有一个在另一台机器上充当客户端的Web服务。我已将nettcpbinding设置为使用Windows身份验证传输安全性。假设运行Web服务的windows用户必须具有访问另一台计算机上的WCF服务的权限,这是否正确?如果Web服务在NetworkService下运行,是否可以使用它,或者我需要为它设置一个新用户才能使用?有关NetworkService的详细信息,请参阅。将发生的情况是,您的WCF客户端将尝试以domain\computername$

我有一个承载WCF服务的windows服务,还有一个在另一台机器上充当客户端的Web服务。我已将nettcpbinding设置为使用Windows身份验证传输安全性。假设运行Web服务的windows用户必须具有访问另一台计算机上的WCF服务的权限,这是否正确?如果Web服务在NetworkService下运行,是否可以使用它,或者我需要为它设置一个新用户才能使用?

有关NetworkService的详细信息,请参阅。将发生的情况是,您的WCF客户端将尝试以domain\computername$身份验证托管服务的计算机。我个人更喜欢使用特定的身份进行审核。

有关networkservice的详细信息,请参阅。将发生的情况是,您的WCF客户端将尝试以domain\computername$身份验证托管服务的计算机。我个人更喜欢使用特定的身份进行审核。

是的,您需要设置另一个用户。网络服务是本地用户,在WCF主机上不存在。(确实如此,但它有不同的密码,因此不共享)

您有两种选择—如果两台计算机都在域中,您可以作为域用户运行web应用程序池,或者如果您在工作组中,您可以在两台计算机上创建相同的用户名/密码组合,并将网站配置为在该帐户下运行。在这两种情况下,您都需要通过发出

aspnet_regiis -ga MachineName\AccountName
如果您处于域和kerberos身份验证中,则还需要为新用户帐户设置SPN

setspn -A HTTP/webservername domain\customAccountName
setspn -A HTTP/webservername.fullyqualifieddomainname domain\customAccountName 

是的,您需要设置另一个用户。网络服务是本地用户,在WCF主机上不存在。(确实如此,但它有不同的密码,因此不共享)

您有两种选择—如果两台计算机都在域中,您可以作为域用户运行web应用程序池,或者如果您在工作组中,您可以在两台计算机上创建相同的用户名/密码组合,并将网站配置为在该帐户下运行。在这两种情况下,您都需要通过发出

aspnet_regiis -ga MachineName\AccountName
如果您处于域和kerberos身份验证中,则还需要为新用户帐户设置SPN

setspn -A HTTP/webservername domain\customAccountName
setspn -A HTTP/webservername.fullyqualifieddomainname domain\customAccountName 

最好作为网络服务运行,因为它不需要在网络上维护密码。计算机帐户密码每30天更改一次,根据域策略,网络帐户密码往往会过期,需要手动更改。最好作为网络服务运行,因为它不需要在网络上维护密码。计算机帐户密码每30天更改一次,根据域策略,网络帐户密码往往会过期,需要手动更改。如果IIS不在域中,但windows服务在域中,该怎么办?如果IIS不在域中,但windows服务在域中,该怎么办?