コード例 #1
0
        public void ChangePasswordTest()
        {
            // Arrange
            ChangePasswordRequest req = new ChangePasswordRequest
            {
                CurrentPassword = currentPassword,
                NewPassword     = newPassword1
            };

            // Act
            BaseResponse res = secAuthSvc.User.ChangePassword(goodUsername, req);

            // Assert
            Assert.AreEqual(Constants.ResponseStatus.Success, res.Status);

            // Validate new password
            // Arrange
            ValidatePasswordRequest vReq = new ValidatePasswordRequest(goodUsername, newPassword1);

            // Act
            BaseResponse vRes = secAuthSvc.Authenticate.ValidatePassword(vReq);

            // Assert
            Assert.AreEqual(Constants.ResponseStatus.Valid, vRes.Status);
        }
コード例 #2
0
        public void CreateUserTest()
        {
            // Arrange
            CreateUserRequest req = new CreateUserRequest();

            req.UserId   = newUserId;
            req.Password = newPassword2;
            req.Properties.Add("firstName", newFirstName);
            req.Properties.Add("lastName", newLastName);
            req.KnowledgeBase.Add("kbq1", new KbProperty("Which day were you born?", "Tuesday"));

            // Act
            BaseResponse res = secAuthSvc.User.CreateUser(req);

            // Assert
            Assert.AreEqual(Constants.ResponseStatus.Success, res.Status);

            // Validate password for new user
            // Arrange
            ValidatePasswordRequest req2 = new ValidatePasswordRequest(req.UserId, req.Password);

            // Act
            BaseResponse res2 = secAuthSvc.Authenticate.ValidatePassword(req2);

            // Assert
            Assert.AreEqual(Constants.ResponseStatus.Valid, res2.Status);
        }
コード例 #3
0
        public bool Authenticate(string username, string password)
        {
            ValidatePasswordRequest request = new ValidatePasswordRequest();

            request.Username = username;
            request.Password = Helper.Hash(password);
            return(_membershipService.Validate(request).Result);
        }
コード例 #4
0
        // 4-16-20 - Sean Dyon
        static void Main(string[] args)
        {
            // Setup the configuration object with your
            // SecureAuth API ID, API Key, and URL
            Configuration saApiConfig = new Configuration()
            {
                AppId              = "your_app_id",
                AppKey             = "your_app_key",
                SecureAuthRealmUrl = "https://your_url.identity.secureauth.com/SecureAuth1/"
            };

            // Instantiate a service object. Passing in the configuration.
            SecureAuthService saService = new SecureAuthService(saApiConfig);

            // Send the Request to get Authentication Options for User
            GetFactorsResponse res = saService.User.GetFactors("someuser");

            Console.WriteLine("---- Get User Auth Options: ----");
            Console.WriteLine(res.RawJson);
            Console.WriteLine("---- Get User Auth Options Sttatus: ----");
            Console.WriteLine(res.Status);

            /*
             * Example Postman creating user
             * {
             *    "userId": "test2",
             *    "password": "******",
             *    "properties": {
             *      "firstName": "Test",
             *      "lastName": "User",
             *      "phone1": "123-456-7890",
             *      "email1": "*****@*****.**"
             *    }
             *  }
             */

            // Create User Object
            CreateUserRequest req = new CreateUserRequest();

            req.UserId   = "someuser";
            req.Password = "******";
            req.Properties.Add("firstName", "Test");
            req.Properties.Add("lastName", "User");
            req.Properties.Add("phone1", "123-456-7890");
            req.Properties.Add("email1", "*****@*****.**");

            // Send the Request
            BaseResponse res2 = saService.User.CreateUser(req);

            Console.WriteLine("---- Creating User: ----");
            Console.WriteLine(res2.Status);

            // Validate password for new user
            ValidatePasswordRequest req2 = new ValidatePasswordRequest(req.UserId, req.Password);

            Console.WriteLine("---- Validating Password: ----");
            Console.WriteLine(res2.Status);
        }
コード例 #5
0
        public void ValidateBadPasswordTest()
        {
            // Arrange
            ValidatePasswordRequest req = new ValidatePasswordRequest(goodUsername, badPassword);

            // Act
            BaseResponse res = secAuthSvc.Authenticate.ValidatePassword(req);

            // Assert
            Assert.AreEqual(Constants.ResponseStatus.Invalid, res.Status);
        }
コード例 #6
0
        private static Task <ValidatePasswordResponse> GetResultFromHandler(string password)
        {
            var handler = new ValidatePasswordHandler();
            var request = new ValidatePasswordRequest
            {
                Password = password
            };
            var cancelationToken = new CancellationToken();

            return(handler.Handle(request, cancelationToken));
        }
コード例 #7
0
        public async Task <IActionResult> ValidatePassword([FromBody] ValidatePasswordRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ValidationProblemDetails(ModelState)));
            }
            User user = null;

            if (!string.IsNullOrWhiteSpace(request.Token) && Base64Id.TryParse(request.Token, out var userId))
            {
                user = await _userManager.FindByIdAsync(userId.Id.ToString());
            }
            var userAvailable     = user != null;
            var userNameAvailable = !string.IsNullOrWhiteSpace(request.UserName);
            var availableRules    = GetAvailableRules(userAvailable, userNameAvailable).ToDictionary(rule => rule.Key, rule => new PasswordRuleInfo {
                Code        = rule.Key,
                IsValid     = true,
                Description = rule.Value.Description,
                Requirement = rule.Value.Hint
            });

            foreach (var validator in _userManager.PasswordValidators)
            {
                var userInstance = user ?? (userNameAvailable ? new User {
                    UserName = request.UserName
                } : new User());
                var result       = await validator.ValidateAsync(_userManager, userInstance, request.Password ?? string.Empty);

                if (!result.Succeeded)
                {
                    foreach (var error in result.Errors)
                    {
                        if (availableRules.ContainsKey(error.Code))
                        {
                            availableRules[error.Code].IsValid = false;
                        }
                    }
                }
            }
            return(Ok(new CredentialsValidationInfo {
                PasswordRules = availableRules.Values.ToList()
            }));
        }
コード例 #8
0
        public ValidatePasswordResponse Validate(ValidatePasswordRequest request)
        {
            ValidatePasswordResponse response = new ValidatePasswordResponse();

            Query query = new Query();

            query.Add(new Criterion("Password", request.Password, CriteriaOperator.Equal));
            query.QueryOperator = QueryOperator.And;
            query.Add(new Criterion("UserName", request.Username, CriteriaOperator.Equal));
            List <User> users = _repository.FindBy(query).ToList();

            if (users.Count > 0)
            {
                response.Result = true;
            }
            else
            {
                response.Result = false;
            }
            return(response);
        }
コード例 #9
0
        public async Task <ActionResult> ValidatePassword([FromBody] ValidatePasswordRequest request, CancellationToken cancellationToken)
        {
            var response = await Mediator.Send(request, cancellationToken);

            return(Ok(response));
        }