1

我的 Web-API 服务中有一个DelegatingHandler,它根据提供的标头在 Thread.CurrentPrincipal 和 HttpContext.Current.User 上设置自定义 IPrincipal (ServicePrincipal)。这一切都是在调用SendAsync时完成的。

但是,当调用 get 进入 Controller 时,User 属性、HttpContext.User 和 Thread.CurrentPrincipal 都被神秘地设置为 RolePrincipal。

有谁知道我做错了什么,或者如何防止设置额外的主体?

谢谢,
基龙

4

1 回答 1

3

我知道这个问题很老,但是我在尝试从覆盖的函数中获取当前用户时遇到了类似的问题DelegatingHandler.SendAsync()IPrincipal直到base.SendAsync()调用. 调用该行之后,IPrincipal对象应该具有用户信息。

我曾经request.GetRequestContext().Principal检索过它,但我猜Thread.CurrentPrincipal也可以。

于 2016-02-29T21:04:45.713 回答