コード例 #1
0
        public async Task <IActionResult> Login(IFormCollection form, [Bind("strUsername,strPassword")] UserLoginModel usr)
        {
            String cookie = Request.Headers["Cookie"];

            var userCookie = await _userRepository.GetUsersAsDbSet().FirstOrDefaultAsync(u => u.strCookie == cookie);

            if (userCookie == null)
            {
                string keepLogged = "false";
                try
                {
                    keepLogged = form["strIsLogged"].ToString();
                }
                catch
                {
                }
                string cryptedPassword = CryptoManager.ComputeSha256Hash(usr.strPassword);

                if (usr.strUsername == null)
                {
                    return(NotFound());
                }

                var user = await _userRepository.GetUsersAsDbSet().FirstOrDefaultAsync(u => u.strUsername == usr.strUsername && u.strPassword == CryptoManager.ComputeSha256Hash(usr.strPassword));

                if (user == null)
                {
                    return(View("Login"));//no
                }
                else
                {
                    if (keepLogged == "true")
                    {
                        user.strCookie   = cookie;
                        user.strIsLogged = true;

                        await _userRepository.UpdateUserAsync(user);
                    }
                    currentUser     = user;
                    ViewBag.CrtUser = user;


                    return(View("Index"));//yes
                }
            }
            else
            {
                ViewBag.CrtUser = userCookie;
                return(View("Index"));
            }
        }