예제 #1
0
        public async Task <string> Post([FromBody] UserInfo userInfo)
        {
            var name      = userInfo.name;
            var password  = userInfo.password;
            var thisUsers = await(from user in DbContext.Cards where user.name.Trim().Equals(name) select user).ToArrayAsync();

            if (thisUsers.Length == 0)
            {
                return("no this user");
            }
            if (thisUsers[0].active == 1)
            {
                return("already dead");
            }
            var _password = thisUsers[0].password.Trim();

            if (password.Equals(_password))
            {
                var result = "cc98" + name + "CC98" + password;
                MD5 md5    = new MD5CryptoServiceProvider();
                var output = BitConverter.ToString((md5.ComputeHash(Encoding.UTF8.GetBytes(result)))).Replace("-", "");
                var newA   = new Data.Authorization(name, output);
                DbContext.Authorizations.Add(newA);
                await DbContext.SaveChangesAsync();

                return(output);
            }
            else
            {
                return("password error");
            }
        }
예제 #2
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = _db.Users.FirstOrDefault(x => x.Login == User.Login && x.Password == User.Password);

            if (user == null)
            {
                return(Page());
            }

            var  authorization = _db.Authorizations.FirstOrDefault(x => x.User.Id == user.Id);
            Guid guid;

            if (authorization == null)
            {
                guid = Guid.NewGuid();
                await _db.Roles.ToListAsync();

                await _db.RoleModules.ToListAsync();

                await _db.Modules.ToListAsync();

                var auth = new Data.Authorization()
                {
                    DateTime   = DateTime.Now,
                    Expiration = new TimeSpan(0, 1, 0, 0),
                    Token      = guid,
                    User       = user
                };
                await _db.Authorizations.AddAsync(auth);

                _cache.Authorizations.Add(auth);
            }
            else
            {
                guid = authorization.Token;
                authorization.DateTime          = DateTime.Now;
                _db.Attach(authorization).State = EntityState.Modified;
            }
            await _db.SaveChangesAsync();

            Response.Cookies.Append("hash", guid.ToString(), new CookieOptions()
            {
                Expires = DateTime.Now.AddDays(1)
            });
            _cache.Clear();
            return(RedirectToPage("/Index"));
        }