Security Web API、DelegatingHandler和安全性。在控制器中重置主体

Security Web API、DelegatingHandler和安全性。在控制器中重置主体,security,asp.net-web-api,iprincipal,Security,Asp.net Web Api,Iprincipal,我的Web API服务中有一个实例,它基于提供的头,在Thread.CurrentPrincipal和HttpContext.Current.User上设置一个自定义IPrincipal(ServicePrincipal)。这一切都是在一次电话会议上完成的 然而,当调用进入控制器时,用户属性、HttpContext.User和Thread.CurrentPrincipal都被神秘地设置为RolePrincipal 有人知道我做错了什么,或者如何防止设置额外的主体吗 谢谢, Kieron我知道这个

我的Web API服务中有一个实例,它基于提供的头,在Thread.CurrentPrincipal和HttpContext.Current.User上设置一个自定义IPrincipal(ServicePrincipal)。这一切都是在一次电话会议上完成的

然而,当调用进入控制器时,用户属性、HttpContext.User和Thread.CurrentPrincipal都被神秘地设置为RolePrincipal

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

谢谢,

Kieron

我知道这个问题很老了,但我在试图从重写
DelegatingHandler.sendancy()
的函数中获取当前用户时遇到了类似的问题。调用
base.SendAsync()
之后,
IPrincipal
对象才会初始化。调用该行后,
IPrincipal
对象应该具有用户信息


我使用了
request.GetRequestContext().Principal
来检索它,但我猜
Thread.CurrentPrincipal
也会起作用。

确保禁用rolemanager更好…HttpContext.User现在是正确的,但是Thread.CurrentPrincipal仍然是RolePrincipal-因此请求仍然无法验证…您找到解决方案了吗?我有一个无关紧要的问题,可能会从你的解决方案中受益。