2015-12-01 2 views
0

Я не могу понять, когда после входа в приложение сеанс первый раз доступен вместе с аутентификацией пользователя. Моя цель - после входа пользователя в приложение, чтобы сохранить некоторые данные о пользователе в сеансе (сразу после входа в систему, прежде чем что-либо еще произойдет), поэтому я могу использовать его позже. Я использую шаблон MVC по умолчанию с VS2015. Мой Войти выглядитMVC 5 сеанс после аутентификации

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); 
     switch (result) 
     { 
      case SignInStatus.Success: 
       return RedirectToLocal(returnUrl); //I jump here 
      case SignInStatus.LockedOut: 
       return View("Lockout"); 
      case SignInStatus.RequiresVerification: 
       return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); 
      case SignInStatus.Failure: 
      default: 
       ModelState.AddModelError("", "Invalid login attempt."); 
       return View(model); 
     } 

private ActionResult RedirectToLocal(string returnUrl) 
    { 
     //here I would like to save some stuff into the session, the session is available here but the user is not authenticated yet 

     if (Url.IsLocalUrl(returnUrl)) 
     { 
      return Redirect(returnUrl); 
     } 
     return RedirectToAction("Index", "Course"); 
    } 

Ok, затем я попытался global.asax:

protected void Application_AuthenticateRequest(object sender, EventArgs e) 
    { 
     //and of course here I have authenticated user but the session is null 
    } 

Можете ли вы помочь мне, пожалуйста?

+0

Почему вам нужно сохранять значения в сеансе? – Hadee

+0

Ну, я хочу сохранить некоторые пользовательские данные для дальнейшего использования в приложении. Сессия выглядит как приятное место, чтобы сохранить ее там :-) –

ответ

1

ASP будет более апатридом, чем раньше, и это означает, что лучше не использовать объекты на основе состояния, такие как session.If вы используете MVC5, вы используете идентификатор 2. Это означает, что у вас есть ApplicationUser в вашем контексте идентификации. Поэтому у вас есть почти все, что вам нужно, используя ApplicationUser. Если вам нужно что-то более ApplicationUser, лучший подход - ApplicationUser. В этом случае вам вообще не нужны никакие переменные сеанса. Например, проверьте here.

+0

Отлично, спасибо, вы правы. Я продлил Пользователь, и он работает! –

+0

так что оцените! – Hadee

Смежные вопросы