예제 #1
0
        public ActionResult CreateUser([Bind(Include = "Username,FullName,ContactNumber,MCRNo,Role,IsActive,EffectiveStartDate,EffectiveEndDate")] PHSUser user)
        {
            if (!IsUserAuthenticated())
            {
                return(RedirectToLogin());
            }

            SetBackURL("Index");

            string message = string.Empty;

            using (var userManager = new UserManager(GetLoginUser()))
            {
                string tempPassword = PasswordManager.Generate();
                user.Password = tempPassword;

                var newUserCreated = userManager.AddUser(GetLoginUser(), user, out message);
                if (!newUserCreated)
                {
                    SetViewBagError(message);
                    SetBackURL("Index");
                    return(View());
                }

                SetTempDataMessage(user.Username + " has been created successfully with password " + tempPassword);
                SetBackURL("Index");
                return(RedirectToAction("Index"));
            }
        }
예제 #2
0
        public void CanGeneratePasswords()
        {
            var pm        = new PasswordManager();
            var passwords = new List <string>();

            for (var i = 0; i < 100; i++)
            {
                var p = pm.Generate();
                if (!pm.GetPolicy(p).Ok)
                {
                    Console.WriteLine("Pass:"******"z")));
            Assert.True(passwords.Any(_ => _.Contains("q")));
            Assert.True(passwords.Any(_ => _.Contains("Z")));
            Assert.True(passwords.Any(_ => _.Contains("Q")));
            Assert.True(passwords.Any(_ => _.Contains("0")));
            Assert.True(passwords.Any(_ => _.Contains("9")));
            Assert.True(passwords.Any(_ => _.Contains("$")));
            Assert.True(passwords.Any(_ => _.Contains("+")));
        }
예제 #3
0
        public ActionResult ResetPassword(String[] selectedusers)
        {
            if (!IsUserAuthenticated())
            {
                return(RedirectToLogin());
            }

            if (selectedusers == null || selectedusers.Length == 0)
            {
                SetTempDataMessage("No Selection made!");
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new { Error = "No Selection made!" }));
            }

            string message = string.Empty;
            string tempPW  = PasswordManager.Generate();

            using (var userManager = new UserManager(GetLoginUser()))
            {
                bool isResetPassword = userManager.ResetPassword(GetLoginUser(), selectedusers, tempPW, out message);
                if (!isResetPassword)
                {
                    SetTempDataMessage(message);
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(Json(new { Error = message }));
                }
            }

            SetTempDataMessage("Password has been reset to " + tempPW);
            return(Json(new { Success = "Success" }));
        }
예제 #4
0
        public void ResetPasswordTest_Success()
        {
            string username = "******";
            string stuff    = "abcde12345";

            PHSUser user = new PHSUser()
            {
                Username           = username,
                FullName           = "tester 123",
                Password           = stuff,
                IsActive           = true,
                EffectiveStartDate = DateTime.Now,
                EffectiveEndDate   = DateTime.Now.AddDays(1),
                Role = Constants.User_Role_Volunteer_Code
            };

            string message = string.Empty;

            bool saveResult = _target.AddUser(_loginuser, user, out message);

            Assert.IsTrue(saveResult);
            Assert.AreEqual(string.Empty, message);

            PHSUser loginUser = _target.IsAuthenticated(username, stuff, out message);

            Assert.IsNotNull(loginUser);

            string newPassword = PasswordManager.Generate();

            string[] selectedUsers = new string[1];
            selectedUsers[0] = username;

            bool resetResult = _target.ResetPassword(_loginuser, selectedUsers, newPassword, out message);

            Assert.IsTrue(resetResult);
            Assert.AreEqual(string.Empty, message);

            loginUser = _target.IsAuthenticated(username, newPassword, out message);
            Assert.IsNotNull(loginUser);
        }