コード例 #1
0
        public UserAccountModel Login(UserAccountModel userAccountModel)
        {
            _logging.Log(LogSeverity.Info, JsonConvert.SerializeObject(userAccountModel));

            UserAccount userAccount = userAccountModel.ToEntity();

            UserAccount user = _context.UserAccount.FirstOrDefault(u => u.UserName == userAccount.UserName && u.Active);

            if (user != null)
            {
                var hash = new PasswordHash(user.Password);

                _logging.Log(LogSeverity.Info, $"newhash: {hash}, oldhash: {userAccountModel.Password}");

                if (hash.Verify(userAccountModel.Password))
                {
                    var userModel = user.ToModel();
                    userModel.Token = GetToken(userModel.UserAccountId);

                    return(userModel);
                }
            }

            _logging.Log(LogSeverity.Error, "Login Failed", JsonConvert.SerializeObject(userAccountModel));

            return(Unauthorized());
        }