1

我正在将 ASP.NET Web API 应用程序移植到 Web API 2 候选版本。此应用程序使用 MessageHandler 通过解析和解密 HTTP 标头来授权用户。然后它创建一个适当的 ClaimsPrincipal 并设置HttpContext.Current.UserThread.CurrentPrincipal

在 Web API 1.0 中,控制器可以访问该ApiController.User属性并获取我之前在消息处理程序中设置的主体。在 Web API 2.0 中, User 属性包含一个有效的空白GenericPrincipal,即使Thread.CurrentPrincipal是正确的。

这是故意的吗?它是 Web API 2 的错误(很可能)吗?也许我没有正确设置校长?

我一直在使用ApiController.User它,因为它似乎比直接使用“更正确” Thread.CurrentPrincipal,但这始终是解决问题的可能方法。

4

1 回答 1

0

花了我一段时间,但事实证明这是 RC 中的一个问题,该问题已在 Web API 2 的最终版本中得到修复。现在可以正常工作了!

于 2013-11-24T22:48:33.337 回答