Как получить доступ к HttpContext.Current.User.Username в службе WCF
Как я могу получить доступ к HttpContext.Current.User.Username
из веб-приложения в службе WCF?
Ответы
Ответ 1
Как правило, вы не используете HttpContext - это концепция ASP.NET и не применяется к WCF, если вы не запустили ее с включенной совместимостью ASP.NET.
Если вы хотите, чтобы текущий пользователь в WCF использовал ServiceSecurityContext.Current.PrimaryIdentity
или получил контекст безопасности через OperationContext.
Ответ 2
На самом деле, с режимом совместимости Asp.Net, вы можете получить доступ к HttpContext.Current.User из службы WCF, размещенной на сайте. Подробнее см. на сайте Microsoft: https://msdn.microsoft.com/en-us/library/aa702682(v=vs.110).aspx
Если ваша служба размещена на сайте Asp.net, вам просто нужно обновить свой web.config, чтобы установить aspNetCompatibilityEnabled = "true" в элементе serviceHostingEnvironment:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>