【发布时间】:2011-04-14 13:58:09
【问题描述】:
在我的 WCF 服务类的构造函数中,我将当前主体设置为消息头中传递的主体:
Thread.CurrentPrincipal = OperationContext.Current.IncomingMessageHeaders.GetHeader<BBPrincipal>("bbPrincipal", "ns");
这似乎工作正常,但是当我在方法中引用主体时,Thread.CurrentPrincipal 已恢复为 WindowsPrincipal。
大概该方法在不同的线程上触发。如何确保该方法使用的是服务构造函数中设置的主体?
【问题讨论】:
-
你需要解释你想要达到的目标是什么。您想在不同的帐户/模拟下运行您的服务吗?当然,处理传入请求的线程与创建服务的线程不同。
-
您在哪里执行此代码:“将当前主体设置为消息头中传递的主体的主体” - 我很感兴趣,因为我有类似的问题。