Ich fragte mich, wie ich das IPrincipal an HttpContext.Current.User in Asp.net Mvc mit Ninject binden könnte.Asp.net Mvc: Ninject - IPrincipal
Freundliche Grüße,
Pickel
Edit:
Nicht sicher, ob es wichtig ist, aber ich meine eigene Custom Klasse.
Ich fragte mich, wie ich das IPrincipal an HttpContext.Current.User in Asp.net Mvc mit Ninject binden könnte.Asp.net Mvc: Ninject - IPrincipal
Freundliche Grüße,
Pickel
Edit:
Nicht sicher, ob es wichtig ist, aber ich meine eigene Custom Klasse.
Sie können dies tun, ohne die Notwendigkeit für einen Anbieter in Ihrem NinjectModule
:
Bind<IPrincipal>()
.ToMethod(ctx => HttpContext.Current.User)
.InRequestScope();
Hinweis, ich .InRequestScope()
, dass der Wert des Verfahrens zu gewährleisten, enthalten einmal pro HTTP-Anforderung zwischengespeichert wird. Ich würde dies auch dann empfehlen, wenn Sie den Provider-Mechanismus verwenden.
denken, dass ich es bekam:
public class PrincipalProvider : IProvider
{
public object Create(IContext context)
{
return HttpContext.Current.User;
}
public System.Type Type
{
get { return typeof(CustomPrincipal); }
}
}
Und in meinem NinjectModule ich tun:
Bind<IPrincipal>().ToProvider<PrincipalProvider>();
Wenn dies falsch ist oder nicht füllen Sie bitte lassen Sie mich wissen und ich werde einstellen/löschen.
Ist es möglich, den IProvider über verschiedene Layer hinweg zu speichern, einschließlich derer, die nicht auf das Web verweisen? – Haroon
Wow danke, das ist ein toller Tipp. – Pickels
Kein Problem, hoffe es hilft! –