Пример #1
0
    protected void CreateUserButton_Clicked(object sender, EventArgs e)
    {
        string userName     = UserNameTextBox.Text;
        string password     = PasswordTextBox.Text;
        string emailAddress = EmailAddressTextBox.Text;

        if (userName == "" || password == "" || emailAddress == "")
        {
            return;
        }

        //Check if user exists
        if (CuplexLib.User.UserNameExists(userName))
        {
            ShowModalMessage(Utils.GetResourceText("RegisterUserUsernameTaken"));
            return;
        }
        else if (!Utils.ValidateEmail(emailAddress))
        {
            ShowModalMessage(Utils.GetResourceText("RegisterUserIncorrectEmailAddress"));
            return;
        }
        else if (password != PasswordConfirmTextBox.Text)
        {
            ShowModalMessage(Utils.GetResourceText("RegisterUserPasswordMissmatch"));
            return;
        }

        //Verify password strength
        PasswordVerifier passwordVerifier = new PasswordVerifier();

        PasswordVerifier.PasswordVerifierResult passwordVerificationResult = passwordVerifier.VerifyPassword(password);

        if (passwordVerificationResult != PasswordVerifier.PasswordVerifierResult.PasswordIsOk)
        {
            string errorMessage = "<b>" + Utils.GetResourceText(Enum.GetName(typeof(PasswordVerifier.PasswordVerifierResult), passwordVerificationResult)) + "</b>";
            errorMessage += "<BR/>" + string.Format(Utils.GetResourceText("PasswordRules"), passwordVerifier.MinimumPasswordLength, passwordVerifier.MinimumPasswordCapitalLetters, passwordVerifier.MinimumPasswordDigits);
            ShowModalMessage(errorMessage);
            return;
        }

        //Verify UserName
        if (!UserNameVerifier.VerifyUserName(userName))
        {
            ShowModalMessage(Utils.GetResourceText("IncorrectUserName"));
            return;
        }

        CuplexLib.User createdUser = CuplexLib.User.CreateUser(userName, password, emailAddress);
        if (createdUser != null)
        {
            AccessControl.CreateUserSession(createdUser.UserName);
            Response.Redirect(cms.Current.GetRootPath);
        }
    }
Пример #2
0
        public async Task <UserViewModel> GetVerifiedUserAsync(LoginViewModel model, CancellationToken ct)
        {
            var user = await _userRepository.GetByEmailAsync(model.Email, ct : ct);

            if (user is null)
            {
                return(null);
            }
            return(PasswordVerifier.VerifyPassword(model.Password,
                                                   new PasswordSecret(user))
                ? user.Adapt <UserViewModel>()
                : null);
        }