コード例 #1
0
        public IActionResult ValidateAccessCode([FromBody] ValidateAccessCodeViewModel validateVerificationCodeViewModel)
        {
            var userFromDatabase = _userRepo.GetUserWithVerificationCode(validateVerificationCodeViewModel.UserName);

            if (userFromDatabase.VerificationCode.Code != validateVerificationCodeViewModel.AccessCode || userFromDatabase.VerificationCode.Code != "67140")
            {
                return(BadRequest());
            }

            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Qas2ty9qqRuwekfg$ytty7j874&32iILOpqu@ayghqpyrbslid52abwtys%"));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken("https://google.com",
                                             "https://google.com",
                                             expires: DateTime.Now.AddMinutes(30),
                                             signingCredentials: creds);

            var userResult = new LoginUserResult
            {
                Id          = userFromDatabase.Id,
                Token       = new JwtSecurityTokenHandler().WriteToken(token),
                FirstName   = userFromDatabase.FirstName,
                LastName    = userFromDatabase.LastName,
                UserName    = userFromDatabase.UserName,
                PhoneNumber = userFromDatabase.PhoneNumber
            };

            return(Ok(userResult));
        }
コード例 #2
0
        public async Task <IActionResult> Login([FromBody] LoginViewModel loginViewModel)
        {
            var result = await _signInManager.PasswordSignInAsync(loginViewModel.UserName,
                                                                  loginViewModel.Password,
                                                                  false,
                                                                  false);

            if (!result.Succeeded)
            {
                return(BadRequest());
            }

            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Qas2ty9qqRuwekfg$ytty7j874&32iILOpqu@ayghqpyrbslid52abwtys%"));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken("https://google.com",
                                             "https://google.com",
                                             expires: DateTime.Now.AddMinutes(30),
                                             signingCredentials: creds);

            var savedUser = await _userManager.FindByNameAsync(loginViewModel.UserName);

            var userResult = new LoginUserResult
            {
                Id          = savedUser.Id,
                Token       = new JwtSecurityTokenHandler().WriteToken(token),
                FirstName   = savedUser.FirstName,
                LastName    = savedUser.LastName,
                UserName    = savedUser.UserName,
                PhoneNumber = savedUser.PhoneNumber
            };

            //Get the Notifications for the loggedin user
            var notifications = _notificationRepository.GetNotificationsByUserId(savedUser.Id);

            userResult.Notifications = notifications;

            return(Ok(userResult));
        }
        public LoginUserResult LogOn(string email, string password)
        {
            var result = new LoginUserResult();

            result.Message = Resources.Interface.InvalidCredentials;

            if (string.IsNullOrWhiteSpace(email) || string.IsNullOrWhiteSpace(password))
            {
                return(result);
            }

            try
            {
                var id = this._userManager.GetId(email);

                if (id == null)
                {
                    return(result);
                }

                var name           = this._userManager.GetName(id.Value);
                var validateResult = this._securityManager.ValidateUser(id.Value, password);
                this._dataSource.SaveChanges();

                if (validateResult == ValidateUserResult.Valid)
                {
                    this._cookieService.SetAuthCookie(email);
                    StrixPlatform.Environment.StoreInSession(PlatformConstants.CURRENTUSEREMAIL, email);
                    var user = this._userManager.Get(id.Value);
                    this._userManager.UpdateLoggedInUser(user);
                    result.Success          = true;
                    result.PreferredCulture = user.PreferredCulture;
                    Logger.LogToAudit(AuditLogType.LoginLogout.ToString(), string.Format("User {0} logged in.", name));
                }
                else
                {
                    switch (validateResult)
                    {
                    case ValidateUserResult.LockedOut:
                    {
                        result.Message = Resources.Interface.LockedOut;
                    }

                    break;

                    case ValidateUserResult.Unapproved:
                    {
                        result.Message = Resources.Interface.Unapproved;
                    }

                    break;

                    case ValidateUserResult.NoRoles:
                    {
                        result.Message = Resources.Interface.UserHasNoRoles;
                    }

                    break;
                    }

                    Logger.LogToAudit(AuditLogType.LoginLogout.ToString(), string.Format("Login failed for user {0}. Status: {1}.", name, result.Message));
                }
            }
            catch (Exception)
            {
                result.Message = Resources.Interface.ErrorValidatingAccount;
            }

            return(result);
        }