开发者

User isn't authenticated till the next page request

I have this following mvc application

The problem is when Im trying to assign profile values:

            // 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)开发者_运维知识库);
            }

Inside 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);
    }

How come after calling FormsAuthentication.SetAuthCookie, User isn't yet authenticated? I'm getting an error b.c. im trying to assign some profile value to anonymous user .

Any idea?


When you set a cookie, it's added to the Response, but the IsAuthenticated bool is set from the Request. After setting the authentication and setting up your session variables, you should redirect to another page, like the home page or the original request.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜