我的Web-API服务中有DelegatingHandler,根据提供的标头,在Thread.CurrentPrincipal和HttpContext.Current.User上设置自定义IPrincipal(ServicePrincipal)。这一切都是在致电SendAsync时完成的。
但是,当调用get进入Controller时,User属性,HttpContext.User和Thread.CurrentPrincipal都被神秘地设置为RolePrincipal。
有没有人知道我做错了什么,或者如何防止设置额外的校长?
谢谢,
基隆
答案 0 :(得分:2)
我知道这个问题已经过时了,但我遇到了类似的问题,试图让一个函数覆盖DelegatingHandler.SendAsync()
的当前用户。 IPrincipal
对象似乎在调用base.SendAsync()
之后才初始化。调用该行后,IPrincipal
对象应具有用户信息。
我使用request.GetRequestContext().Principal
来检索它,但我猜测Thread.CurrentPrincipal
也可以。