Пользователь не авторизован до следующего запроса страницы - PullRequest
0 голосов
/ 17 августа 2011

У меня есть следующее приложение mvc

Проблема в том, что я пытаюсь назначить значения профиля:

            // Attempt to register the user
            MembershipCreateStatus createStatus = MembershipService.CreateUser(model.Email, model.Password);

            if (createStatus == MembershipCreateStatus.Success)
            {
                //Adding role
                MembershipService.AddDefaultRole(model.Email);

                FormsService.SignIn(model.Email, false /* createPersistentCookie */);

                //Add other initial profile data
                HttpContext.Profile["FirstName"] = model.FirstName; //PROBLEM
                HttpContext.Profile["LastName"] = model.LastName; //PROBLEM

                return RedirectToAction("List", new { area = "", controller = "Requests" });
            }
            else
            {
                ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));
            }

Внутри FormsService.SignIn (model.Email, false):

    public void SignIn(string email, bool createPersistentCookie)
    {
        if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email");

        FormsAuthentication.SetAuthCookie(email, createPersistentCookie);
    }

Почему после вызова FormsAuthentication.SetAuthCookie пользователь еще не аутентифицирован?Я получаю сообщение об ошибке, потому что я пытаюсь присвоить анонимному пользователю какое-либо значение профиля.

Есть идеи?

1 Ответ

1 голос
/ 17 августа 2011

Когда вы устанавливаете cookie-файл, он добавляется в ответ, но IsAuthenticated bool устанавливается из запроса. После настройки аутентификации и настройки переменных сеанса вы должны перенаправить на другую страницу, например домашнюю страницу или исходный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...