2014-01-14 137 views
2

在我的申请,我在客户端创建自己的委托对象,这是我设置像从客户端以校长在WCF的服务服务器

Thread.CurrentPrincipal = myPrincipal; 

现在,当我调用WCF服务( TCP/IP),我也应该在这个称为WCF服务的服务器端线程中拥有此主体。有什么我可以配置来做到这一点,还是我必须自己实现?

感谢您的提示。

+0

请参阅此文章:http://stackoverflow.com/questions/1292183/what-value-should-the-serviceprincipalname-have –

回答

1

如果我们谈论的窗口负责人,看看WCF认证安全选项。这不是微不足道的。

如果您有一个自定义主体对象,那么我的建议是实现消息检查器,将消息头中的主体序列化并在另一端解压缩它。这对于我们在很多项目中工作得非常好,并且不需要任何特殊的WCF设置。

+0

嗨fejesjoco - 我使用自定义校长。消息检查员的想法听起来很有趣。你能给我一个示例如何使用消息insepctors? – BennoDual

+0

这看起来是一个很好的例子:http://adilmughal.com/blog/2011/10/client-additional-parameters-using-custom-headers-in-wcf/ – fejesjoco

+0

这种方法的好处是你可以发送任何类型的复杂数据合同对象,您只需将其应用于每个服务调用,就不需要为每个服务方法逐个添加新参数。 – fejesjoco

0

这将是隐式进行,如WCF每个请求都应有Iprincipal.Identity 你尝试过这样的事情在你的服务器端

IPrincipal principal = Thread.CurrentPrincipal; 
相关问题