コード例 #1
0
        public async Task <ActionResult <WebApiLoginResult> > ChangePassword(LoginParameters parameters, CancellationToken token)
        {
            var result = new WebApiLoginResult {
                LoginResult          = (int)LoginResult.Failed,
                PasswordChangeResult = (int)PasswordChangeResult.Failed,
            };

            var company = (await companyProcessor.GetAsync(new CompanySearch {
                Code = parameters.CompanyCode
            }, token))?.FirstOrDefault();

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

            var loginUser = (await loginUserProcessor.GetAsync(new LoginUserSearch
            {
                CompanyId = company.Id,
                Codes = new[] { parameters.UserCode },
            }, token))?.FirstOrDefault();

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

            var changeResult = await loginUserPasswordProcessor.ChangeAsync(company.Id, loginUser.Id, parameters.OldPassword, parameters.Password, token);

            result.PasswordChangeResult = (int)changeResult;
            return(result);
        }
コード例 #2
0
        public async Task <ActionResult <WebApiLoginResult> > Login(LoginParameters parameters, CancellationToken token)
        {
            var result = new WebApiLoginResult {
                LoginResult          = (int)LoginResult.Failed,
                PasswordChangeResult = (int)PasswordValidateResult.Valid,
            };

            var company = (await companyProcessor.GetAsync(new CompanySearch {
                Code = parameters.CompanyCode
            }, token))?.FirstOrDefault();

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

            var loginUser = (await loginUserProcessor.GetAsync(new LoginUserSearch {
                CompanyId = company.Id,
                Codes = new[] { parameters.UserCode },
            }, token))?.FirstOrDefault();

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

            var loginResult = await loginUserPasswordProcessor.LoginAsync(company.Id, loginUser.Id, parameters.Password, token);

            result.LoginResult = (int)loginResult;
            if (loginResult != LoginResult.Success && loginResult != LoginResult.Expired)
            {
                return(result);
            }

            var authKey    = string.Empty;
            var tenantCode = string.Empty;

            if (!ParseHeader(out authKey, out tenantCode))
            {
                result.LoginResult = (int)LoginResult.Failed;
                return(result);
            }
            var createResult = await authenticationWebApiProcessor.CreateSessionAsync(tenantCode, token);

            if (!createResult.Result)
            {
                result.LoginResult = (int)LoginResult.DBError;
                return(result);
            }
            result.SessionKey = createResult.ErrorMessage;

            return(result);
        }