Ho creato un semplice componente di middleware OWIN che mi fornirà un oggetto User e lo aggiungerò a HttpContext.Current.Items
in modo che sia disponibile per tutti i controller e le viste per ogni richiesta.Utilizzare Ninject DI nel proprio middleware OWIN
Ecco il mio codice:
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);
}
}
sto usando Ninject nella mia applicazione web - come posso refactoring di questo middleware in modo che il mio UserRepository viene iniettato come una dipendenza? Ciò è effettivamente possibile?
Avete scelto qualsiasi implementazione. Anch'io ho questa domanda – Saravanan
Spero di non aver fatto una domanda stupida, ma hai provato a collegarlo al tuo contenitore IoC/DI? 'Collega(). A ();' –