我正在使用web api 2
我有一个身份验证过滤器(实现IAuthenticationFilter),它检查令牌并在Thread和HttpContext上设置ClaimsPrinciple。一个这样的主张是userId
我使用Windsor进行依赖注入,使用此处描述的方法。 http://blog.ploeh.dk/2012/10/03/DependencyInjectioninASP.NETWebAPIwithCastleWindsor/
这将为我的控制器创建对象图,从而新建控制器具有的所有依赖项
问题是其中一个依赖关系中的一个构造函数进行了需要用户标识的调用
似乎这个(构造函数调用)在由身份验证过滤器
设置之前发生我有什么选择?
答案 0 :(得分:1)
当Web API需要控制器时,依赖注入用于创建它。这总是在执行管道之前发生。因此,您无法访问稍后设置的userid
。
至少有这些解决方案。
userid
参数,以便在您想要使用它时可用。 我更喜欢这个