У меня есть проект Mvc5 и я использую Owin.Mvc5 HttpContext return null
Im получение аутентификации из OwinContext
,
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
и AuthenticationManager
делает пользователя войти.
private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
Session_Add(user);
}
Вот мой вызов в HomeController. Я пытаюсь войти в систему после обратного вызова facebook
.
public ActionResult Index()
{
try
{
if (Request.QueryString["code"] != null)
{
string code = Request.QueryString["code"].ToString();
string state = "";
string type = "";
var fb = new FacebookController();
var me = fb.GetUserInfo(fb.GetAccessToken(code, state, type));
new AccountController().LookUserFromFacebook(me);
}
return View();
}
catch
{
return View();
}
}
Форма входа в систему: AccountController
Пользователь может зарегистрироваться. Но проблема, если я вызываю метод SignInAsync
с другого контроллера, HttpContext
всегда возвращает null. Я думаю, это из-за этого вызова не запроса, поэтому контроллер не создает контекст.
Что такое решение, если я звоню SignInAsync
.
Thx.
Можете ли вы показать, как вы выполняете вызов с другого контроллера на 'SignInAsync'' AccountController'? – MonkeyCoder
Что вы пытаетесь достичь здесь? –
ОК я редактирую. @MonkeyCoder –