Передача данных профиля от анонимного пользователя вошедшему в систему пользователю - PullRequest
2 голосов
/ 27 августа 2011

Я пытаюсь присвоить какое-то значение профилю пользователя после того, как пользователь создает членство (создает учетную запись), после входа в систему, но перед следующим httprequest

Хотя я пытаюсь войти в систему / аутентифицироватьсяПользователь до назначения значений профиля, пользователь не будет аутентифицирован до следующего httprequest.

Вот так выглядит мой код:

    [HttpPost]
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            MembershipCreateStatus createStatus = UserService.CreateUser(model.Email, model.Password);

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

                FormsService.SignIn(model.Email, false); //Inside: FormsAuthentication.SetAuthCookie(email, createPersistentCookie);


                HttpContext.Current.Profile["FistName"] = firstName; //WON'T WORK - USER ISN'T AUTHENTICATED YET
                HttpContext.Current.Profile["LastName"] = lastName; // WON'T WORK

                return RedirectToAction("List", new { area = "Requests", controller = "Requests" }); //User will only be authenticated after this this redirection
             }

Я думаю включить анонимного пользователя, назначить значения профиля и позже после следующего httprequest (когда пользователь аутентифицирован)передать эти данные пользователю, который прошел проверку подлинности.

Есть ли что-нибудь, чтобы сделать это?Если так, есть ли учебник для этого?если нет, то как мне подойти к этой проблеме?

1 Ответ

0 голосов
/ 11 сентября 2011

Почему бы не поместить эти значения в файл cookie, при создании учетной записи перенаправить в действие, которое считывает файл cookie и обновляет профиль, а затем снова перенаправляет туда, куда вы хотите, чтобы регистрант попал?

...