配置WCF的传输安全性

时间:2009-03-20 23:48:27

标签: .net wcf

我有一个托管WCF服务的Windows服务,以及作为客户端的另一台机器上的Web服务。我使用Windows身份验证将nettcpbinding设置为Transport security。我是否正确假设在webservice下运行的windows用户必须有权访问另一台机器上的WCF服务?如果webservice在NetworkService下运行,是否可以使用它,或者我是否需要设置新用户才能使用它?

2 个答案:

答案 0 :(得分:3)

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

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

为新帐户分配正确的权限
aspnet_regiis -ga MachineName\AccountName

如果您在域和kerberos身份验证中,那么您还需要为新用户帐户设置SPN

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

答案 1 :(得分:1)

有关网络服务的详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms684272(VS.85).aspx。会发生什么是您的WCF客户端将尝试以domain \ computername $身份验证托管该服务的计算机。我个人更喜欢具有特定身份用于审计目的。