2016-02-12 9 views
6

Я использую Membership Reboot в моем Asp.Net5 MVC 6 веб-приложение для управления моей личности, логины и т.д.GetOwinContext в MVC 6

Я пытаюсь получить МР OwinAuthenticationService работы в качестве реализации для интерфейса IAuthenticationService, который я am впрыскивание в мои контроллеры.

Образец для этого предполагает введение в зависимости IAuthenticationService с помощью следующей 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(); 

В MVC5, что было бы хорошо, как HttpContext.Current.GetOwinContext() в качестве метода расширения в Microsoft.Owin.Host.SystemWeb сборки. Однако эта сборка больше не используется в MVC6, поэтому HttpContext.Current не разрешает.

Я видел, что новый способ доступа к HttpContext использует новый интерфейс IHttpContextAccessor, но это не решает проблему получения контекста Owin.

Есть ли способ получить текущий контекст Owin в MVC6 или текущий словарь среды Owin (так как это класс OwinAuthenticationService)?

+0

Я работаю над некоторой аутентификацией, которая работает с Owin и еще не поддерживается в новом мире ASP.NET Core, и я столкнулся с той же проблемой. Вы нашли какой-нибудь способ заставить старый работать с новым? Я не могу заставить свой указатель запускать с тем, что настроено в контексте Owin при запуске с контроллера без доступа к контексту Owin. –

+0

У меня такая же проблема. Мне нужен Owin-контекст для пользователя SignOut. Любое решение –

ответ