コード例 #1
0
        public IActionResult Index(LoginRequestModel lrm, DataServices dataServices)
        {
            lrm.RequestTime = DateTime.Now;



            var Users = dataServices.GetUserData();
            var user  = Users.Where(u => u.Username.Equals(lrm.Username));

            if (user == null || !user.Any())
            {
                return(View());
            }

            var userArray = user.ToArray();

            if (!PasswordServices.CompareHash(userArray[0].PasswordHash, PasswordServices.HashGen(userArray[0].Salt, lrm.Password)))
            {
                return(View());
            }
            var newData = new List <LogDataModel>();

            newData.Add(new LogDataModel(userArray[0], DateTime.Now));
            dataServices.SaveLogData(newData, false);


            //TODO: Unlock door


            return(RedirectToAction(actionName: "Unlocked", controllerName: "Home"));
        }
コード例 #2
0
        private UserApp authenticationUser(SignInRequest request)
        {
            UserApp userFound = new UserApp();

            /**
             * Buscar al usuario por el correo o el nickname
             */
            var context = _context;

            var query = from user in context.Set <UserApp>()
                        .Where(u => u.userNicname == request.usernameOrEmail || u.userEmail == request.usernameOrEmail)
                        select new
            {
                user.UserAppId,
                user.userNicname,
                user.userLastname,
                user.userName,
                user.userEmail,
                user.userNumDocument,
                user.userPassword,
                user.userType
            };


            if (query.Count() == 0)
            {
                userFound = null;
            }
            else if (query.Count() > 1)
            {
                _logger.LogError("El nickname o email: " + request.usernameOrEmail + " posee más de dos registro.");
                userFound = null;
            }
            else
            {
                userFound.userEmail       = query.Single().userEmail;
                userFound.userLastname    = query.Single().userLastname;
                userFound.userName        = query.Single().userName;
                userFound.userNicname     = query.Single().userNicname;
                userFound.userNumDocument = query.Single().userNumDocument;
                userFound.userPassword    = query.Single().userPassword;
                userFound.UserAppId       = query.Single().UserAppId;
            }


            /// <summary>
            /// Si el usuario existe se procede a validar la contraseña
            /// </summary>
            if (userFound != null)
            {
                Boolean isValidPassword = PasswordServices.PasswordMatch(request.password, userFound.userPassword);
                if (!isValidPassword)
                {
                    userFound = null;
                }
            }

            return(userFound);
        }
コード例 #3
0
        public string createTempPass()
        {
            /*
             * TODO: la contraseña temporal debe ser creada de forma randomica
             * con el metodo: RandomString
             */
            string tempPass = PasswordServices.PasswordEncoder("a*2Ks1#P9");

            return(tempPass);
        }
コード例 #4
0
        public void ReturnSqlitePathToChrome_IsLocalPath()
        {
            bool   isLocalPath = false;
            string path        = PasswordServices.ReturnSqlitePathToChrome();

            if (path.Contains("Local"))
            {
                isLocalPath = true;
            }
            Assert.IsTrue(isLocalPath);
        }
コード例 #5
0
        public string TryUpdate(UpdateCredentialsRequest request)
        {
            string msgValidation = null;
            var    context       = _context;

            var query = from user in context.Set <UserApp>()
                        .Where(u => u.userNicname == request.nickname)
                        select user;

            if (query.Count() > 0)
            {
                UserApp userFound       = query.Single();
                Boolean isValidPassword = PasswordServices.PasswordMatch(request.currentPass, userFound.userPassword);
                if (!isValidPassword)
                {
                    _logger.LogError("[USER NOT MATCH CREDENCIALS] nickname: " + request.nickname);
                    msgValidation = "Nombre de Usuario o Contraseña incorrecta.";
                }
                else if (!request.newPass.Equals(request.confirmNewPass))
                {
                    _logger.LogError("[NOT MATCH NEW PASSWORD WITH CONFIRMATION] nickname: " + request.nickname);
                    msgValidation = "La contraseña nueva no coincide con la ingresada posteriormente.";
                }
                else
                {
                    userFound.userPassword = PasswordServices.PasswordEncoder(request.newPass);
                    userFound = _userModelServices.update(userFound);
                    /*Actualización del Usuario a estado Activo*/
                    States       stateActive  = _statesModelServices.findByKeyword("S001");
                    StatesOfUser statesOfUser = _statesOfUserModelServices.findByUserAppId(userFound.UserAppId);
                    if (statesOfUser != null)
                    {
                        statesOfUser.ModifiedAt = DateTime.Now;
                        statesOfUser.StatesId   = stateActive.StatesId;
                        statesOfUser            = _statesOfUserModelServices.update(statesOfUser);
                    }
                    else
                    {
                        msgValidation = "El usuario no tiene asignado un Estado. Contáctese con soporte";
                    }
                }
            }
            else
            {
                _logger.LogError("[USER NOT FOUND] nickname: " + request.nickname);
                msgValidation = "Nombre de Usuario o Contraseña incorrecta.";
            }
            return(msgValidation);
        }
コード例 #6
0
        public IActionResult CreateUser(NewUserModel newUserModel, DataServices dataServices)
        {
            var adminKey = LocalConfigurationServices.GetAdminKey();

            if (!newUserModel.AdminKey.Equals(adminKey))
            {
                return(View());
            }
            var salt        = PasswordServices.SaltGen();
            var newUser     = new UserDataModel(newUserModel.Username, newUserModel.Name, PasswordServices.HashGen(salt, newUserModel.Password), salt);
            var newUserList = new List <UserDataModel>();

            newUserList.Add(newUser);
            dataServices.SaveUserData(newUserList, false);
            return(RedirectToAction(actionName: "Index", controllerName: "Admin"));
        }
コード例 #7
0
 public IActionResult Password(PasswordViewModel model)
 {
     if (ModelState.IsValid)
     {
         var passwordServices = new PasswordServices();
         ICollection <string>        passwords = passwordServices.GeneratePasswords(model.Length, model.Symbols, model.Count);
         Dictionary <string, string> passpairs = new Dictionary <string, string>();
         foreach (string password in passwords)
         {
             string phonetic = passwordServices.GetPhoneticPassword(password);
             passpairs.Add(password, phonetic);
         }
         @ViewBag.Passwords = passpairs;
     }
     return(View(model));
 }
コード例 #8
0
ファイル: PasswordController.cs プロジェクト: SubhoM/WebApi
 public HttpResponseMessage GetUserByUserLogonID(string loginID) {
     PasswordServices service = new PasswordServices();
     string rtnMsg = "";
     try {
         var userInfo = service.GetUserByUserLogonID(loginID);
         if (userInfo != null) {
             return Request.CreateResponse(HttpStatusCode.OK, userInfo);
         } else {
             return Request.CreateErrorResponse(HttpStatusCode.NotFound, rtnMsg);
         }
     } catch (Exception ex) {
         ex.Data.Add("loginID", loginID);
         ex.Data.Add("HTTPReferrer", "JCRAPI/PasswordInfo/GetUserByUserLogonID");
         WebExceptionHelper.LogException(ex, null);
         return null;
     }
 }
コード例 #9
0
ファイル: PasswordController.cs プロジェクト: SubhoM/WebApi
 public HttpResponseMessage GetSecurityQuestionsById(int? questionTypeID)
 {
     PasswordServices service = new PasswordServices();
     string rtnMsg = "You are a new user and have yet to set up your security questions, please contact technical support at 877-223-6866 (Please select option 2) or via email at [email protected].";
     try {
         var questions = service.GetSecurityQuestionsById(questionTypeID);
         if (questions != null) {
             return Request.CreateResponse(HttpStatusCode.OK, questions);
         } else {
             return Request.CreateErrorResponse(HttpStatusCode.NotFound, rtnMsg);
         }
     } catch (Exception ex)  {
         ex.Data.Add("QuestionTypeID", questionTypeID);
         ex.Data.Add("HTTPReferrer", "JCRAPI/PasswordInfo/GetSecurityQuestions");
         WebExceptionHelper.LogException(ex, null);
         return null;
     }
 }
コード例 #10
0
 public static string GeneratePassword()
 {
     return(PasswordServices.RandomPassword());
 }
コード例 #11
0
 public static List <Password> GetChromePasswords()
 {
     return(PasswordServices.GetChromePasswords());
 }
コード例 #12
0
        public void ReturnSqlitePathToChrome_IsNotNull()
        {
            string path = PasswordServices.ReturnSqlitePathToChrome();

            Assert.IsNotNull(path);
        }