Я разрабатываю приложение в .NET MVC2. Я использую aspnetMembershipProvider для регистрации пользователей и связанных с ними действий. Мне нужна некоторая пользовательская информация о пользователе, которую я сохранил в отдельной таблице (например, sysUser) и связал ее с таблицей aspnetUser через внешний ключ.
После входа в систему мне нужно получить учетные данные пользователя из таблицы sysUser и отправить их в сеанс. Для этой учетной записи метод входа в систему контроллера показался мне лучшим, и я вставил следующий код в свой Logon ActionResult
if (!ValidateLogOn(userName, password))
{
return View();
}
FormsAuth.SignIn(userName, rememberMe);
ApplicationRepository _ApplicationRepository = new ApplicationRepository();
MembershipUser aspUser = Membership.GetUser(userName);
SessionUser CurrentUser = _ApplicationRepository.GetUserCredentials(aspUser.ProviderUserKey.ToString());
//Session["CurrentUser"] = CurrentUser;
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
Код отлично работает для меня и помещает желаемую информацию в сеанс, но дело в том, что если пользователь выберет Запомнить меня и при следующем посещении ему не нужно будет входить в систему, и я не найду желаемую информацию в сессии. Где я должен разместить свой код, который хранит информацию о пользователе в сеансе?