Ninject 根据 Owin.Context.User.Identy 更改绑定

Ninject Alter Binding base on Owin.Context.User.Identy

我需要更改 ninject 基于 User.Identity 的绑定。

我有这样的场景: 基于我为自己的目的使用的用户 Actor 声明。 我必须在我的 class 构造函数中注入 Claims.Actor 的值, 我该怎么做?

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

谢谢

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

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);
              });