How to get OwinContext from Global.asax?

asp.net-mvc, c#, owin, simple-injector

Solution

I fixed this with the following:

container.RegisterPerWebRequest(() =>
{
    if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying())
    {
        return new OwinContext().Authentication;
    }
    return HttpContext.Current.GetOwinContext().Authentication;

});

Seems like the OwnContext is not present at startup, so I'll wait for it and inject it once its present. Please note that the `container.IsVerifying()` is present in `SimpleInjector.Advanced`

Problem

I am trying to set up my Dependency Injection and I am in the need of injecting a `IAuthenticationManager` from ASP.NET Identity to an `OwinContext`. For this I am from my `Global.asax -> ServiceConfig.Configure()` running: ``` container.Register(() => HttpContext.Current.GetOwinContext().Authentication); ``` But when I am running my application I get this message: No owin.Environment item was found in the context Why is this HttpContext.Current.GetOwinContext() not available from Global.asax? Startup.cs ``` [assembly: OwinStartupAttribute(typeof(MyApp.Web.Startup))] namespace Speedop.Web { public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); } } } ``` Startup.Auth.cs ``` public partial class Startup { public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager<User, int>, User, int>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentityCallback: (manager, user) => manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie), getUserIdCallback: (id) => (Int32.Parse(id.GetUserId())) ) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); } } ```

Original source

Related problems