Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WCF服务中将主体从客户端转移到服务器_C#_Wcf_C# 4.0_Wcf Security - Fatal编程技术网

C# 在WCF服务中将主体从客户端转移到服务器

C# 在WCF服务中将主体从客户端转移到服务器,c#,wcf,c#-4.0,wcf-security,C#,Wcf,C# 4.0,Wcf Security,在我的应用程序中,我在客户端创建自己的主体对象,设置如下 Thread.CurrentPrincipal = myPrincipal; 现在,当我调用一个WCF服务(TCP/IP)时,我应该在这个称为WCF服务的服务器端线程中也有这个主体。我是否可以配置一些东西来实现这一点,或者我必须自己实现这一点 感谢您的提示。这将隐式完成,因为WCF中的每个请求都应该具有Iprincipal.Identity 您在服务器端尝试过类似的方法吗 IPrincipal principal = Thread.

在我的应用程序中,我在客户端创建自己的主体对象,设置如下

Thread.CurrentPrincipal = myPrincipal;
现在,当我调用一个WCF服务(TCP/IP)时,我应该在这个称为WCF服务的服务器端线程中也有这个主体。我是否可以配置一些东西来实现这一点,或者我必须自己实现这一点


感谢您的提示。

这将隐式完成,因为WCF中的每个请求都应该具有
Iprincipal.Identity
您在服务器端尝试过类似的方法吗

IPrincipal principal =   Thread.CurrentPrincipal;

如果我们谈论的是windows主体,请看一下WCF身份验证和安全选项。这不是小事


如果您有一个自定义主体对象,那么我的建议是实现消息检查器,在消息头中序列化主体,并在另一端解包。这在许多项目中都非常有效,不需要任何特殊的WCF设置。

请参阅本文:Hi-fejesjoco-我使用自定义主体。消息检查器的想法听起来很有趣。您能给我一个如何使用消息插入器的示例吗?这似乎是一个很好的示例:这种方法的优点是,您可以发送任何类型的复杂数据协定对象,并且您可以简单地将其应用于服务的每个调用,无需逐个向每个服务方法添加新参数。