Sto provando a impostare la mia dipendenza da iniezione e ho bisogno di iniettare un IAuthenticationManager
dall'identità ASP.NET a OwinContext
.Come ottenere OwinContext da Global.asax?
Per questo sono dalla mia Global.asax -> ServiceConfig.Configure()
esecuzione:
container.Register(() => HttpContext.Current.GetOwinContext().Authentication);
Ma quando sto facendo funzionare la mia domanda ottengo questo messaggio:
voceNessun owin.Environment è stato trovato nel contesto
Perché questo HttpContext.Current.GetOwinContext() non è disponibile da 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);
}
}
guarda [questa risposta] (http://stackoverflow.com/questions/20168978/do-i-need-a-global-asax-cs-file-at-all -se-im-con-un-Owin-startup-cs-classe-e). Principalmente, Global.asax viene chiamato prima di Startup.cs – Jonesopolis
Hm, ho "Microsoft.Owin.Host.SystemWeb.dll" nella mia directory. Ho provato a spostare tutto su Startup.cs dal mio Global.asax dopo che ho fatto ConfigureAuth (...) lo stesso messaggio viene comunque. – janhartmann
Ho appena provato a creare un'app completamente nuova e ho provato a ottenere OwinContext con gli stessi risultati. Ci deve essere un modo :-) – janhartmann