Ejemplo n.º 1
0
        public async Task <IActionResult> Login(UserViewModel model)
        {
            if (model.UserName.NullOrEmpty())
            {
                return(Ok("用户名不能为空".Error()));
            }

            if (model.Password.NullOrEmpty())
            {
                return(Ok("密码不能为空".Error()));
            }

            var user = await _dbContext.User.FirstOrDefaultAsync(x => x.Name == model.UserName);

            if (user == null)
            {
                return(Ok("用户名不正确".Error()));
            }

            if (user.HashPassword != model.Password.MD5Encrypt())
            {
                return(Ok("密码不正确".Error()));
            }

            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Name, user.Name.ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim("display_name", user.DisplayName.ToString()),
            };

            await HttpContext.SignInAsync(new ClaimsPrincipal(new ClaimsIdentity(claims, "CoreJobCookie")));

            return(Ok(EmptyJson.Success()));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AddUser(UserViewModel model)
        {
            var dbUser = await _dbContext.User.FirstOrDefaultAsync(x => x.Name == model.UserName);

            if (dbUser != null)
            {
                return(Ok("用户已存在".Error()));
            }

            var newUser = new DashboardUser()
            {
                DisplayName  = model.UserDisplayName,
                Disabled     = false,
                HashPassword = model.Password.MD5Encrypt(),
                InTime       = DateTime.Now,
                UpdateTime   = DateTime.Now,
                Name         = model.UserName,
            };

            await _dbContext.User.AddAsync(newUser);

            await _dbContext.SaveChangesAsync();

            return(Ok(EmptyJson.Success()));
        }
Ejemplo n.º 3
0
        public void WithEmptyJsonAsParam_ReturnsStringifiedJson()
        {
            var emptyJson       = new EmptyJson();
            var objectInfoLines = emptyJson.Stringify().ToLines();

            Assert.AreEqual("$type           : Swan.Test.Mocks.EmptyJson", objectInfoLines[0]);
        }
Ejemplo n.º 4
0
            protected override bool OnObjectPropertyDetected(string propertyName, JsonReader reader)
            {
                if (string.Compare(propertyName, "data1", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    var x = new EmptyJson {
                        Accumulate = true
                    };

                    x.ReadJson(reader);

                    Data = "{" + x.JsonString + "}";

                    return(true);
                }

                return(false);
            }
Ejemplo n.º 5
0
        protected override bool OnObjectItemDetected(JsonReader reader)
        {
            var x         = Activator.CreateInstance <TDataItem>();
            var jsonModel = x as JsonModel;

            if (jsonModel != null)
            {
                jsonModel.ReadJson(reader);
            }
            else
            {
                var emptyReader = new EmptyJson();
                emptyReader.Accumulate = true;
                emptyReader.ReadJson(reader);

                x = (TDataItem)JsonConvert.DeserializeObject(emptyReader.JsonString, typeof(TDataItem));
            }

            items.Add(x);
            return(true);
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> ChangePassword(UserViewModel model)
        {
            var user = await _dbContext.User.FindAsync(GetCurrentUserId());

            if (user == null)
            {
                return(Ok("用户不存在".Error()));
            }

            if (model.Password.NullOrEmpty())
            {
                return(Ok("密码不能为空".Error()));
            }

            if (user.HashPassword != model.Password.MD5Encrypt())
            {
                return(Ok("密码不正确".Error()));
            }

            var newHashPassword = model.NewPassword.MD5Encrypt();

            if (user.HashPassword == newHashPassword)
            {
                return(Ok("新密码不能与旧密码一致".Error()));
            }

            user.HashPassword = newHashPassword;

            _dbContext.Entry(user).Property(nameof(DashboardUser.HashPassword)).IsModified = true;

            await _dbContext.SaveChangesAsync();

            //            await _dbContext.Database.ExecuteSqlInterpolatedAsync($@"Update {nameof(DashboardUser)}
            //set {nameof(DashboardUser.HashPassword)}={newHashPassword} Where Id={user.Id}");

            return(Ok(EmptyJson.Success()));
        }