Пример #1
0
        public IActionResult ExternalGuestLogin(SNWLExternalAuthenticationRequest model)
        {
            SNWLExternalAuthenticationXMLResponse responseModel;

            if (!ModelState.IsValid)
            {
                return(new ObjectResult(ResponseHelper.Login.InvalidOrMissingCGIParamResponse()));
            }

            switch (_stateProvider.LoginReplyCode)
            {
            case ResponseHelper.Login.LOGIN_SUCCEEDED:
                responseModel = ResponseHelper.Login.LoginSucceededResponse();
                break;

            case ResponseHelper.Login.SESSION_LIMIT_EXCEEDED:
                responseModel = ResponseHelper.Login.SessionLimitExceededResponse();
                break;

            case ResponseHelper.Login.LOGIN_FAILED:
                responseModel = ResponseHelper.Login.LoginFailedResponse();
                break;

            case ResponseHelper.Login.INVALID_OR_MISSING_PARAM:
                responseModel = ResponseHelper.Login.InvalidOrMissingCGIParamResponse();
                break;

            case ResponseHelper.Login.INVALID_HMAC:
                responseModel = ResponseHelper.Login.InvalidHMACResponse();
                break;

            default:
            case ResponseHelper.Login.INTERNAL_ERROR:
                responseModel = ResponseHelper.Login.InternalErrorResponse();
                break;
            }

            // Local bookkeeping
            _stateProvider.ProcessLoginRequest(model);

            return(new ObjectResult(responseModel));
        }