2

我有 2 台服务器 Web 服务器和应用服务器上的应用服务器,我正在运行 WCF。在 wcf 上的任何函数中,我试图使用 System.Web.HttpContext.Current.User 获取当前用户,但我得到 null 有一种方法可以让用户无需将参数移动到任何函数?

4

2 回答 2

2

WCF 试图与 ASP.NET 保持距离,因为它可以在任意数量的主机上运行——而不仅仅是 ASP.NET。这也允许它切出大块 ASP.NET 管道,从而提高吞吐量。您可以通过添加以下内容强制它使用 ASP.NET 模式:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

到配置,但坦率地说,你最好(IMO)使用线程主体。WCF 完全支持主体模型。

于 2013-04-23T08:11:54.147 回答
1

尝试使用ServiceSecurityContext.Current.PrimaryIdentity.

于 2013-04-23T08:10:18.980 回答