Как установить переменную сеанса, когда пользователь входит в систему с файлом cookie «Запомнить меня» в asp mvc

Основываясь на структуре Identity по умолчанию, я хотел бы установить переменную сеанса, когда пользователь входит в приложение.

Это хорошо работает:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if(ModelState.IsValid)
    {
        // Validate the password
        IdentityResult result = await IdentityManager.Authentication.CheckPasswordAndSignInAsync(AuthenticationManager, model.UserName, model.Password, model.RememberMe);

        if(result.Success)
        {
            //save display name in session view
            SiteUser user = await _siteDbContext.Users.SingleOrDefaultAsync(u => u.UserName == model.UserName);
            Session["displayName"] = user.DisplayName;

            return RedirectToLocal(returnUrl);
        }

        AddErrors(result);
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}

Что отображается в верхней панели сайта с помощью этой строки:

@Html.ActionLink(Session["displayName"].ToString(), "Manage", "Account", null)

Однако, когда я вхожу в систему с установленным флажком «Запомнить меня», закрываю браузер и запускаю его снова, переменная сеанса не устанавливается, и страница генерирует исключение нулевой ссылки.

Немного покопавшись, кажется, что действие /Account/Login установлено в качестве пути входа по умолчанию, но оно никогда не вызывается с аутентификацией cookie.

Как я могу получить в середине или сразу после процесса аутентификации и установить свою переменную сеанса?


person Asaf Sitner    schedule 15.10.2013    source источник
comment
По-видимому, объект Session не устанавливается, потому что действие входа в систему обходится системой аутентификации. Могу ли я отредактировать его или мне нужно поставить галочку и установить значение Session в каждом контроллере?   -  person Asaf Sitner    schedule 15.10.2013
comment
Ааааа я не могу ссылаться на объект Session при первом запросе пользователя. Есть ли способ принудительно создать объект Session?   -  person Asaf Sitner    schedule 15.10.2013