2011-07-19 69 views
15

如何在WCF服務中從Web應用程序訪問HttpContext.Current.User.Username如何訪問WCF服務中的HttpContext.Current.User.Username

+1

你不能 - WCF是**不**必須使用HTTP,並且可能不在IIS中託管,所以......只有**可能不會**任何HTTP上下文......你可以做什麼在您的WCF服務方法中使用'OperationContext' –

+0

您可以向我介紹如何在我的wcf服務方法中實現OperationContext以獲取用戶身份。 – user757207

回答

29

通常您不會 - HttpContext是一個ASP.NET概念,不適用於WCF,除非您在啓用ASP.NET兼容性的情況下運行它。

如果您希望WCF中的當前用戶使用ServiceSecurityContext.Current.PrimaryIdentity或通過OperationContext獲取安全上下文。

+1

+1很好的答案 - 現貨... –

+1

最後,堆疊的人不只是回答問題,而是給出提問者想要的東西。 – SteveCav

0

實際上,在Asp.Net兼容模式下,您可以從站點中託管的WCF服務訪問HttpContext.Current.User。請參閱Microsoft的網站的詳細信息:https://msdn.microsoft.com/en-us/library/aa702682(v=vs.110).aspx

如果您的服務是在Asp.net網站,你只需要更新你的web.config的serviceHostingEnvironment元素上設置aspNetCompatibilityEnabled =「真」主辦:

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