Esempio n. 1
0
        public async Task <IActionResult> Login([Bind("UserName,Password,OnlyLocalLogin,ReturnUrl")] LoginInputModels loginInputModels)
        {
            if (loginInputModels == null)
            {
                throw new ArgumentNullException(nameof(loginInputModels));
            }

            if (!ModelState.IsValid)
            {
                return(View(loginInputModels));
            }

            if (await _userManager.FindByNameAsync(loginInputModels.UserName) == null)
            {
                ModelState.AddModelError("UserName", "该用户名不存在");
                return(View(loginInputModels));
            }

            var success = await _signInManager.PasswordSignInAsync(loginInputModels.UserName, loginInputModels.Password, false, false);

            if (!success.Succeeded)
            {
                ModelState.AddModelError("Password", "密码不正确");
                return(View(loginInputModels));
            }
            var mangouser = await _userManager.FindByNameAsync(loginInputModels.UserName);

            mangouser.LastLoginDate = DateTime.Now;
            await _userManager.UpdateAsync(mangouser);

            return(Redirect(loginInputModels.ReturnUrl));
        }
Esempio n. 2
0
        public async Task <IActionResult> Login(string returnUrl = null)
        {
            if (returnUrl == null)
            {
                returnUrl = "/";
            }

            LoginInputModels loginInputModels = await GetLoginViewModelsAsync(returnUrl);

            return(View(loginInputModels));
        }
Esempio n. 3
0
 public IActionResult Login(LoginInputModels loginModel)
 {
     if (ModelState.IsValid)
     {
         AccountService.AccountService authService = new AccountService.AccountService();
         var resultCode = authService.Login(loginModel) as LoginServiceResult;
         if (resultCode.OperationCode == OperationCode.Success)
         {
             logger.LogInformation($"Log {resultCode.Login} {resultCode.UserType.ToString()}");
             Login(resultCode);
             return(RedirectToAction("Index", "Home"));
         }
     }
     return(View(loginModel));
 }
Esempio n. 4
0
        public IAccountServiceResult Login(LoginInputModels loginInputModels)
        {
            DatabaseContext databaseContext = new DatabaseContext();
            var             find            = databaseContext.Users.FirstOrDefault(x => x.Login == loginInputModels.Login &&
                                                                                   x.PasswordHash == CryptService.MD5Hash(loginInputModels.Password));

            if (find == null)
            {
                return new LoginServiceResult {
                           OperationCode = OperationCode.NotFound
                }
            }
            ;
            return(new LoginServiceResult
            {
                OperationCode = OperationCode.Success,
                ActualID = find.ID,
                Login = find.Login,
                UserType = find.UserType
            });
        }
Esempio n. 5
0
        /// <summary>
        /// 根据returnUrl获取登陆信息,OAuth2.0
        /// </summary>
        /// <param name="returnUrl"></param>
        /// <returns></returns>
        private async Task <LoginInputModels> GetLoginViewModelsAsync(string returnUrl)
        {
            var context = await _interaction.GetAuthorizationContextAsync(returnUrl);

            if (Url.IsLocalUrl(returnUrl) == false && _interaction.IsValidReturnUrl(returnUrl) == false)
            {
                throw new System.Exception("invalid return URL");
            }

            LoginInputModels loginInputModels = new LoginInputModels
            {
                ReturnUrl = returnUrl
            };

            if (context != null && context.IdP != null)
            {
                bool onlyLocalLogin = context.IdP == IdentityServerConstants.LocalIdentityProvider;
                loginInputModels.OnlyLocalLogin = true;
            }

            return(loginInputModels);
        }