Web-API,DelegatingHandler和安全性。 Principal在Controller中重置

时间:2013-07-18 15:39:22

标签: security asp.net-web-api iprincipal

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

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

有没有人知道我做错了什么,或者如何防止设置额外的校长?

谢谢,
基隆

1 个答案:

答案 0 :(得分:2)

我知道这个问题已经过时了,但我遇到了类似的问题,试图让一个函数覆盖DelegatingHandler.SendAsync()的当前用户。 IPrincipal对象似乎在调用base.SendAsync()之后才初始化。调用该行后,IPrincipal对象应具有用户信息。

我使用request.GetRequestContext().Principal来检索它,但我猜测Thread.CurrentPrincipal也可以。