예제 #1
0
        public ActionResult Login()
        {
            IAuthenticationResponse response = openid.GetResponse();

            if (response != null)
            {
                switch (response.Status)
                {
                case AuthenticationStatus.Authenticated:

                    string OpenID = response.FriendlyIdentifierForDisplay;
                    OpenIDMembershipProvider OpenIDProvider = (OpenIDMembershipProvider)Membership.Provider;
                    MembershipUser           User           = OpenIDProvider.GetUser(OpenID, true);

                    if (User == null)
                    {
                        ModelState.AddModelError("loginIdentifier", "Login failed using the provided OpenID identifier");

                        break;
                    }

                    if (Request.QueryString["ReturnUrl"] != null)
                    {
                        FormsAuthentication.RedirectFromLoginPage(User.UserName, false);
                    }
                    else
                    {
                        FormsAuthentication.SetAuthCookie(User.UserName, false);

                        return(Redirect("/Account/Index"));
                    }

                    break;

                case AuthenticationStatus.Canceled:
                    ModelState.AddModelError("loginIdentifier", "Login was cancelled at the provider");

                    break;

                case AuthenticationStatus.Failed:
                    ModelState.AddModelError("loginIdentifier", "Login failed using the provided OpenID identifier");

                    break;
                }
            }

            return(View());
        }
예제 #2
0
        public ActionResult Register(RegisterModel registerModel)
        {
            OpenIDMembershipProvider provider = (OpenIDMembershipProvider)Membership.Provider;
            MembershipCreateStatus   status   = MembershipCreateStatus.Success;

            //provider.CreateUser(registerModel.Username, registerModel.Password, registerModel.Email, registerModel.OpenID, out status);

            if (status == MembershipCreateStatus.Success)
            {
                return(View("Registered"));
            }
            else
            {
                return(View());
            }
        }
예제 #3
0
        public ActionResult Edit(EditModel editModel)
        {
            try
            {
                OpenIDMembershipProvider provider = (OpenIDMembershipProvider)Membership.Provider;

                OpenIDMembershipUser user = (OpenIDMembershipUser)Membership.GetUser();
                //user.Update(editModel);

                provider.UpdateUser(user);

                return(Redirect("/Account/Index"));
            }
            catch
            {
                return(View());
            }
        }