コード例 #1
0
        /// <summary>
        /// Creates a new Azure user
        /// Redirects to specified Url
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="returnUrl"></param>
        /// <returns></returns>
        public ActionResult AddUser(string username, string email, string password, string returnUrl) //TODO: Add Captcha Support
        {                                                                                             //do not use username - replace username with email address to cater for dumb users that do not know what a username is
            if (!User.Identity.IsAuthenticated)
            {
                var userByEmail = Membership.GetUser(email, false);//confirm that email does not exist
                //var userByUsername = Membership.GetUser(username, false);//confirm that username does not exist

                if (userByEmail == null)
                {
                    AzureMembershipProvider membershipProvider = new AzureMembershipProvider();
                    MembershipCreateStatus  createStatus;
                    membershipProvider.CreateUser(email.Trim(), password.Trim(), email.Trim(), string.Empty, string.Empty, true, null, out createStatus);

                    Roles.AddUserToRole(email, "RegisteredUser");

                    var createdUser = AzureMembershipProvider.GetAzureUser(email, true);
                    Request.RequestContext.HttpContext.CreateAzureAuthTicket(createdUser);//login user

                    return(Redirect(returnUrl));
                }
                else
                {//user is allready signed up - redirect to login
                    return(RedirectToAction("Login"));
                }
            }
            else
            {//user is allready logged in - redirect to product search
                return(RedirectToAction("Search", "Product"));
            }
        }
コード例 #2
0
        public ActionResult ChangePassword(string passwordold, string passwordnew, string message)
        {
            if (message == null)
            {
                ViewBag.Message = string.Empty;
            }
            else
            {
                ViewBag.Message = message;
            }

            if ((passwordold != null) && (passwordnew != null))
            {
                var currentUser = AzureMembershipProvider.GetAzureUser(User.Identity.Name, true);

                if ((currentUser.Password == passwordold) && (passwordnew != null))
                {
                    currentUser.Password = passwordnew;//TODO: Validate new password
                    new AzureUserRepository().Save(currentUser);
                    return(RedirectToAction("ChangePasswordComplete"));
                }
                else
                {
                    return(RedirectToAction("ChangePassword", new { message = "Invalid Password" }));
                }
            }
            else
            {
                return(MenuView("MY PROFILE", "SubMenuFindAProduct", "None"));
            }
        }
コード例 #3
0
        public ActionResult UpdateUser(string realname, string email, string returnurl)
        {
            var currentUser = AzureMembershipProvider.GetAzureUser(User.Identity.Name, true);

            AzureMembershipProvider.UpdateAzureUser(currentUser, realname, email);

            return(Redirect(returnurl));
        }
コード例 #4
0
        public ActionResult Login(string username, string password, string message, string returnurl = "/")
        {
            var baseUrl = Settings.Default.BaseUrl;

            if (returnurl == "/")
            {
                ViewBag.ReturnUrl = Url.Encode(baseUrl);
                ViewBag.HrdFeed   = Settings.Default.HrdFeed.Replace("%returnurl%", Url.Encode(baseUrl)).Replace("callback=?", "callback=ShowSigninPage").Replace("%context%", string.Empty);;
            }
            else
            {
                ViewBag.ReturnUrl = Url.Encode(returnurl);
                ViewBag.HrdFeed   = Settings.Default.HrdFeed.Replace("%returnurl%", Url.Encode(baseUrl + returnurl)).Replace("callback=?", "callback=ShowSigninPage").Replace("%context%", string.Empty);;;
            }

            ViewBag.ReturnUrl = (ViewBag.ReturnUrl as string).Replace(@"//", @"/");

            if (message == null)
            {
                ViewBag.Message = string.Empty;
            }
            else
            {
                ViewBag.Message = message;
            }

            if (username == null)
            {
                return(MenuView(string.Empty, "SubMenuFindAProduct", string.Empty));
            }

            if (Membership.ValidateUser(username, password))
            {
                Trace.TraceInformation("Login Attempt [Success]: " + username);

                var authUser = AzureMembershipProvider.GetAzureUser(username, true);
                Request.RequestContext.HttpContext.CreateAzureAuthTicket(authUser);//login user

                return(Redirect(returnurl));
            }
            else
            {
                Trace.TraceInformation("Login Attempt [Fail]: " + username);

                return(RedirectToAction("Login", new { message = "Login Failure" }));
                //return MenuView(,string.Empty, "SubMenuFindAProduct", string.Empty);
            }
        }
コード例 #5
0
        /// <summary>
        /// Confirms that User.Identity is signed up and adds this user to the RegisteredUser Role
        /// Redirects to specified Url
        /// </summary>
        /// <param name="returnUrl"></param>
        /// <returns></returns>
        public ActionResult AddFederatedUser(string returnUrl)//TODO: Add Captcha Support
        {
            //AzureClaimsAuthenticationManager intercepts this request and creates the user so all we need to do here is confirm this and add the roles
            AzureMembershipProvider membershipProvider = new AzureMembershipProvider();
            var user = membershipProvider.GetUser(User.Identity.Name, true);

            if (User != null)
            {
                Roles.AddUserToRole(user.UserName, "RegisteredUser");
                return(Redirect(returnUrl));
            }
            else
            {
                throw new Exception("Failed: User does not exist");
            }
        }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AzureMembershipProviderTests"/> class
 /// </summary>
 public AzureMembershipProviderTests()
 {
     this.userManager             = new StubIUserManager();
     this.azureMembershipProvider = new AzureMembershipProvider(this.userManager);
 }