Пример #1
0
        public async Task <ActionResult <UserToken> > LoginUserAsync(LoginViewModel model)
        {
            UserToken userToken = new UserToken();
            var       user      = await userManager.FindByNameAsync(model.Username);

            if (user != null)
            {
                var result = await signInManager.PasswordSignInAsync(model.Username, model.Password, false, true);

                var loginLog = new LogForLogin
                {
                    UserName   = user.FullName,
                    UserId     = user.Id,
                    Ip_Address = httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString(),
                    TimeStamp  = DateTime.Now,
                };
                if (result.Succeeded)
                {
                    loginLog.StatusFlag = 1;
                    await supportSecurity.InsertLogIntoLoginAsync(loginLog);

                    var role = await userManager.GetRolesAsync(user);

                    var userInfo = new UserInfo
                    {
                        Email    = user.Email,
                        Name     = user.FullName,
                        Username = model.Username,
                        Roles    = role
                    };
                    userToken        = supportSecurity.BuildToken(userInfo);
                    userToken.Status = "success";
                    return(userToken);
                }
                else
                {
                    loginLog.StatusFlag = 0;
                    await supportSecurity.InsertLogIntoLoginAsync(loginLog);

                    userToken.Status = "Invalid Login Attempt";
                }

                if (result.IsLockedOut)
                {
                    string message = "Your account is locked, please try again after sometime or you may reset your password.";
                    userToken.Status = message;
                }
            }
            else
            {
                userToken.Status = "You have to register yourself with us!";
            }

            return(userToken);
        }
Пример #2
0
 public async Task <int> InsertLogIntoLoginAsync(LogForLogin model)
 {
     dbContext.LogTableForLogin.Add(model);
     return(await dbContext.SaveChangesAsync());
 }