Хранение информации о пользователях в сеансе с aspNetMembershipProvider - PullRequest
0 голосов
/ 03 июня 2010

Я разрабатываю приложение в .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");
        }

Код отлично работает для меня и помещает желаемую информацию в сеанс, но дело в том, что если пользователь выберет Запомнить меня и при следующем посещении ему не нужно будет входить в систему, и я не найду желаемую информацию в сессии. Где я должен разместить свой код, который хранит информацию о пользователе в сеансе?

1 Ответ

0 голосов
/ 04 июня 2010
FormsAuthentication.SetAuthCookie(userName, saveLogin);

Документация MSDN для метода SetAuthCookie

...