Beispiel #1
0
        public async Task <IActionResult> LoginPost(Users user)
        {
            int ExpiresUtc = Request.Form["remeber"].ToString() == "on" ? 7 : 1;

            //验证模型的数据验证是否通过
            if (ModelState.IsValid)
            {
                var pwd  = MD5Extension.PassEncrypt(user.password);
                var User = await ums.GetUserByUserNameAsync(user.username);

                if (User != null && User.password == pwd)
                {
                    //添加cookies
                    ClaimsIdentity identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

                    identity.AddClaim(new Claim(ClaimTypes.Name, user.username));
                    //设置有效期
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity), new AuthenticationProperties
                    {
                        // 持久保存
                        IsPersistent = true,

                        ExpiresUtc = DateTime.UtcNow.AddDays(ExpiresUtc)
                    });

                    Alert.Content = "欢迎回来";
                    Alert.Level   = Models.AlertModel.AlertType.Success;
                    return(RedirectToAction(nameof(Index)));
                }
            }
            Alert.Content = "登录失败,请检查登录名/密码";
            Alert.Level   = Models.AlertModel.AlertType.Danger;
            return(RedirectToAction(nameof(Login)));
        }
Beispiel #2
0
        private void AddDefaultData()
        {
            int optionscount = _project3Context.Options.Count();

            if (optionscount > 0)
            {
                return;
            }
            //添加管理员用户
            var adminuser = new Users();

            adminuser.username = "******";
            adminuser.password = MD5Extension.PassEncrypt("admin");
            _project3Context.Users.Add(adminuser);

            //添加默认设置
            var  data = new OptionsModel();
            Type t    = data.GetType();

            foreach (var pi in t.GetProperties())
            {
                object value  = pi.GetValue(data);
                string name   = pi.Name;
                var    option = new Options();
                option.name  = name;
                option.value = value != null?value.ToString() : "";

                _project3Context.Options.Add(option);
            }



            _project3Context.SaveChanges();
        }
Beispiel #3
0
        public async Task <IActionResult> UserSettingPost(Users postuser, string repassword, string checkpassword)
        {
            Alert.Level   = Models.AlertModel.AlertType.Danger;
            Alert.Content = "更新设置失败";


            var users = await ums.GetUserByUserNameAsync(User.Identity.Name);

            if (users == null)
            {
                Alert.Content = "身份验证失败";
            }
            else if (string.IsNullOrEmpty(checkpassword))
            {
                Alert.Content = "请输入当前密码";
            }
            else if (postuser.password != repassword)
            {
                Alert.Content = "两次密码输入不一致";
            }
            else if (users.password != MD5Extension.PassEncrypt(checkpassword))
            {
                Alert.Content = "验证当前密码失败";
            }
            else
            {
                users.username = postuser.username;
                if (!string.IsNullOrEmpty(repassword))
                {
                    users.password = MD5Extension.PassEncrypt(postuser.password);
                }
                await ums.UpdateAsync(users);

                Alert.Content = "用户设置已更新";
                Alert.Level   = Models.AlertModel.AlertType.Success;
                ClaimsIdentity identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

                identity.AddClaim(new Claim(ClaimTypes.Name, postuser.username));
                //设置有效期
                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));
            }
            return(RedirectToAction(nameof(UserSetting)));
        }