2016-02-12 27 views
6

Używam Membership Reboot w moim Asp.Net5 MVC aplikacji 6 internetowej do zarządzania swoją tożsamość, loginów itpGetOwinContext w MVC 6

Próbuję dostać MR OwinAuthenticationService pracuje jako wdrożenie do interfejsu IAuthenticationService które Jestem zależny od iniekcji do kontrolerów.

Próbkę tego wymaga wtryskiwania IAuthenticationService zależności stosując następującą rejestracji Autofac:

builder.Register(ctx=>HttpContext.Current.GetOwinContext()).As<IOwinContext>(); 
builder.Register<IAuthenticationService>(ctx => 
{ 
    var owin = ctx.Resolve<IOwinContext>(); 
    return new OwinAuthenticationService(
     MembershipRebootOwinConstants.AuthenticationType, 
     ctx.Resolve<IUserAccountService>(), 
     owin.Environment); 
}).InstancePerLifetimeScope(); 

W MVC5, byłoby dobrze, jak HttpContext.Current.GetOwinContext() jako metodę rozszerzenia w zespole Microsoft.Owin.Host.SystemWeb. Jednak ten zestaw nie jest już używany w MVC6, a więc HttpContext.Current nie rozwiązuje problemu.

Widziałem, że nowy sposób dostępu do HttpContext wykorzystuje nowy interfejs IHttpContextAccessor, ale to nie rozwiązuje problemu uzyskania kontekstu Owin.

Czy istnieje sposób na uzyskanie aktualnego kontekstu Owin w MVC6 lub w aktualnym słowniku środowiska Owin (ponieważ używa tego klasa OwinAuthenticationService)?

+0

Pracuję nad uwierzytelnieniem, które działa z Owinem i nie jest jeszcze obsługiwane w nowym środowisku ASP.NET Core i pojawia się ten sam problem. Czy znalazłeś jakiś sposób, aby stary pracował z nowym? Nie mogę wyzwolić mojego wylogowania z tego, co jest skonfigurowane w kontekście Owin podczas uruchamiania z kontrolera bez dostępu do kontekstu Owin. –

+0

Mam ten sam problem. Potrzebuję kontekstu Owin do użytkownika SignOut. Każde obejście_ –

Odpowiedz