Ejemplo n.º 1
0
        public override bool ValidateUser(string username, string password)
        {
            using (_log.NewTrace())
            {
                //WcfClientUtils.VerifyParameter("username",username);  //validate user should not throw an error,simply return false
                //WcfClientUtils.VerifyParameter("password", password);

                try
                {
                    UserVerifyRequest request = new UserVerifyRequest();
                    request.ServiceSessionToken = WcfClientUtils.SessionToken;;
                    request.ChallengePrompt     = username;
                    request.ChallengeAnswer     = password;

                    UserVerifyReply response = _membershipService.CredentialVerify(request);
                    if (response.Context.IsAuthenticated == true)
                    {
                        _userSecurityToken = response.Context.IdentityToken;
                        return(true);
                    }

                    _log.Warning("User '{0}' is not validated with status '{1}'. {2}",
                                 username, response.Status, response.Messages.ToString());
                    _userSecurityToken = null;
                    return(false);
                }
                catch (Exception ex)
                {
                    throw WcfUtils.Extract(ex);
                }
            }
        }
Ejemplo n.º 2
0
        public IActionResult VerifyNewUser([FromBody] UserVerifyRequest verifyRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            UserVerifyResponse response = _usersControllerUtilities.VerifyNewUser(verifyRequest);

            return(Ok(response));
        }
Ejemplo n.º 3
0
        private bool CheckForUserVerificationErrors(
            UserVerifyRequest verifyRequest,
            User userToVerify,
            UserVerifyResponse response,
            out UserVerifyResponse actionResult)
        {
            // default the result value.
            actionResult = null;

            if (userToVerify.Verified)
            {
                response.ErrorCode  = (int)UserResponseCode.AlreadyVerifiedUser;
                response.FailReason = "Cannot Verify as User already verified";
                {
                    actionResult = response;
                    return(true);
                }
            }

            if (userToVerify.VerificationByTime > DateTime.Now)
            {
                response.ErrorCode  = (int)UserResponseCode.VerificationCodeTimedOut;
                response.FailReason = "Cannot Verify as code has timed out";
                {
                    actionResult = response;
                    return(true);
                }
            }

            if (userToVerify.VerificationCode.ToString() != verifyRequest.ConfirmationCode.Trim())
            {
                response.ErrorCode  = (int)UserResponseCode.IncorrectConfirmationCode;
                response.FailReason = "Cannot Verify as code is incorrect";
                {
                    actionResult = response;
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 4
0
        public UserVerifyReply CredentialVerify(UserVerifyRequest request)
        {
            UserVerifyReply response = new UserVerifyReply(request);

            try
            {
                // if (verifySessionToken(request.ServiceSessionToken, response) == false) return response;


                response.IsAuthenticated = _membership.ValidateUser(request.ChallengePrompt, request.ChallengeAnswer);
                if (response.IsAuthenticated == false)
                {
                    response.Status = ActionStatus.Error;
                    response.Messages.Add(ActionStatus.Forbidden, string.Format("Unable to validate credentials for '{0}'", request.ChallengePrompt));
                    response.Context.IdentityToken = null;
                    response.RequestorData         = request.RequestorData;
                    response.ServiceSessionToken   = request.ServiceSessionToken;
                    response.Context.Name          = null;
                    return(response);
                }
            }
            catch (Exception ex)
            {
                throw ex.NewFault();
            }
            //catch (Exception ex)
            //{
            //    response.Status = ActionStatus.Error;
            //    response.Messages.Add(MessageSeverity.Error, 0, Utils.Expand(ex));
            //    return response;
            //}

            //response.Context.Roles.AddRange(asp.Roles.GetRolesForUser(request.ChallengePrompt));
            response.ServiceSessionToken = request.ServiceSessionToken; //register new session
            response.Status        = ActionStatus.OK;
            response.RequestorData = request.RequestorData;

            return(response);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Verifies a new user login.
        /// </summary>
        /// <param name="verifyRequest">The new user login to try to verify.</param>
        /// <returns>The action result.</returns>
        public UserVerifyResponse VerifyNewUser(UserVerifyRequest verifyRequest)
        {
            UserVerifyResponse response = new UserVerifyResponse
            {
                ErrorCode  = (int)UserResponseCode.Success,
                FailReason = "",
                UserId     = ""
            };

            User userToVerify =
                _userDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == verifyRequest.UserId);

            if (userToVerify == null)
            {
                response.ErrorCode  = (int)UserResponseCode.UnknownItem;
                response.FailReason = "Cannot Verify this unknown user";
                return(response);
            }

            UserVerifyResponse actionResult;

            if (CheckForUserVerificationErrors(verifyRequest, userToVerify, response, out actionResult))
            {
                // Return the verification error.
                return(actionResult);
            }

            // If here a valid user so set the flag and update.
            userToVerify.Verified = true;
            _userDatabase.UpdateDatabaseItem(userToVerify);

            // Send the successful fully populated response.
            response.Name        = userToVerify.Name;
            response.Description = userToVerify.Description;
            response.Email       = userToVerify.Email;
            return(response);
        }