Как получить доступ к 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>