У меня 2 контроллера. A HomeController
и AccountController
. У меня есть _Layout.cshtml
и частичное представление _Login.cshtml
, которое отображается в разделе заголовка представления _Layout
. HomeController
имеет метод по умолчанию Index()
.
В самый первый раз пользователь видит «Есть аккаунт»? Авторизоваться. Вход в систему - это ссылка, указывающая на метод входа в AccountController
. Представление «Вход в систему» содержит поля «Имя пользователя», «Пароль» и флажок «Запомнить меня». Когда пользователь входит в систему в первый раз и проверяет «Запомнить меня», я звоню своему MySecurityRepository
, чтобы: подтвердить пользователя и получить базовую информацию для его профиля (адрес, номер телефона, адрес электронной почты и т. Д.) И UserInfo
объект заполняется, а заголовок показывает имя пользователя в виде ссылки. Это все работает.
Пользователь закрывает браузер и снова открывает сайт. Я вижу, что пользователь уже вошел в систему, Request.IsAuthenticated
- это правда, но как мне снова получить профиль пользователя и кэшировать?
Вот как выглядит частичный вид _Login
...
<div id="login">
@if (Request.IsAuthenticated)
{
<text>
[@Html.ActionLink((HttpContext.Current.Session["UserInfo"] as UserInfo).FirstName, "Profile", "Account")]
[@Html.ActionLink("Log Off", "LogOff", "Account")]
</text>
}
else
{
<span>Have an account?</span>
@Html.ActionLink("Log In", "LogOn", "Account")
} </div>
Спасибо.