Ninject Alter Binding基于Owin.Context.User.Identy

时间:2017-02-27 14:49:53

标签: ninject owin ninject.web.mvc owin-middleware ninject.web

我需要在User.Identity上更改ninject绑定。

我有这种情况:  基于用户Actor声明,我将其用于我自己的目的。  我必须在我的类构造函数上注入Claims.Actor的值, 我怎么能这样做?

public class C { 
    public C (string ActorValue) {
        // code here
    }
}

感谢

1 个答案:

答案 0 :(得分:1)

如果我理解正确的要求,这很容易:

kernel.Bind<C>().ToMethod(
            ctx =>
              {
                // you can also do anything like HttpContext.Current.GetOwinContext() etc..
                var id = HttpContext.Current?.User?.Identity?.Name ?? "not found";
                return new C(id);
              });