Ich habe ein einfaches Stück OWIN Middleware, die mir ein Benutzerobjekt und fügen Sie es HttpContext.Current.Items
, so dass es für alle Controller und Ansichten für jede Anfrage verfügbar ist.Verwenden Ninject DI in meiner eigenen OWIN Middleware
Hier ist mein Code:
public class SetCurrentUserMiddleware : OwinMiddleware
{
public SetCurrentUserMiddleware(OwinMiddleware next) : base(next)
{
}
public override Task Invoke(IOwinContext context)
{
if (context.Request.User.Identity.IsAuthenticated)
{
// Do some work to get a userId... (omitted)
var repo = new UserRepository();
User user = repo.Get(userId);
HttpContext.Current.Items["CurrentUserContext"] = user;
}
return Next.Invoke(context);
}
}
ich Ninject in meiner Web-Anwendung bin mit - wie kann ich diese Middleware-Refactoring, so dass mein UserRepository als Abhängigkeit injiziert wird? Ist das überhaupt möglich?
Haben Sie eine Implementierung ausgewählt? Ich habe auch diese Frage – Saravanan
Ich hoffe, dass ich nicht eine dumme Frage mache, aber haben Sie versucht, es in Ihrem IoC/DI-Container zu binden? 'Bind(). Um ();' –