2017-02-27 3 views
-1

J'ai besoin de changer la base de liaison ninject sur User.Identity.Ninject Alter base de liaison sur Owin.Context.User.Identy

J'ai ce scénario: base sur l'utilisateur Réclamation d'acteur que j'utilise pour mon propre usage. Je dois injecter sur mon constructeur de classe la valeur de Claims.Actor, comment puis-je faire cela?

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

grâce

Répondre

1

Ceci est assez facile, si je comprends l'exigence correctement:

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