如何在WCF服务中访问HttpContext.Current.User.Username

如何在WCF服务中访问HttpContext.Current.User.Username,wcf,Wcf,如何从WCF服务中的web应用程序访问HttpContext.Current.User.Username?通常情况下,您不需要-HttpContext是一个ASP.NET概念,不适用于WCF,除非您在启用ASP.NET兼容性的情况下运行它 如果希望WCF中的当前用户,请使用ServiceSecurityContext.current.PrimaryIdentity或通过获取安全上下文。实际上,在Asp.Net兼容模式打开的情况下,您可以从站点中托管的WCF服务访问HttpContext.curr

如何从WCF服务中的web应用程序访问
HttpContext.Current.User.Username

通常情况下,您不需要-HttpContext是一个ASP.NET概念,不适用于WCF,除非您在启用ASP.NET兼容性的情况下运行它


如果希望WCF中的当前用户,请使用
ServiceSecurityContext.current.PrimaryIdentity
或通过获取安全上下文。实际上,在Asp.Net兼容模式打开的情况下,您可以从站点中托管的WCF服务访问HttpContext.current.user。有关详细信息,请参见Microsoft网站:

如果您的服务托管在Asp.net网站中,则只需更新web.config,在serviceHostingEnvironment元素上设置aspNetCompatibilityEnabled=“true”:

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>


您不能-WCF不一定使用HTTP,也可能不在IIS中承载。。。所以可能根本就没有任何HTTP上下文。。。。你能做的就是在你的WCF服务方法中使用
OperationContext
,你能简单介绍一下如何在我的WCF服务方法中实现OperationContext来获取用户身份吗。最后,stacky上的某位不只是回答问题的人,但是给出了询问者想要的答案。这个答案很旧,并且不符合最新的框架。从.NET Framework 4.6.2开始,您可以使用:
OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name