/// <summary> /// Get Named User Visit /// </summary> /// <param name="token"></param> /// <returns></returns> public NamedOrAuthEndpointVisit GetVisit(string token, string username, string password) { NamedOrAuthEndpointVisit visit = GetVisit <NamedOrAuthEndpointVisit>(); visit.Token = token; visit.AuthMethod = _defaultAuthMethod; visit.Credentials = new AuthenticationCredentials(username, password, null); return(visit); }
public PaginatedContentResult QueryEx(FormattedPaginatedContentRequest request, NamedOrAuthEndpointVisit visit) { SecurityService.ValidateVisitIsAuthenticated(visit); PaginatedContentResult result = Query(request, visit); result = TransformQueryResult(request, result); ValidateQueryResult(result, request, visit); return(result); }
public virtual void ValidateVisitIsAuthenticated(NamedOrAuthEndpointVisit visit) { if (string.IsNullOrEmpty(visit.Token)) { AuthEndpointVisit authEndpointVisit = new AuthEndpointVisit(visit); try { visit.Token = Authenticate(authEndpointVisit); } catch (Exception ex) { throw new AuthenticationException("Authentication failed.", ex); } } }
protected virtual NamedOrAuthEndpointVisit GetNamedOrAuthEndpointVisit(BaseAuthenticationParameters baseAuthenticationParameters) { // NOTE: The NAASCredentialsRequiredAttribute (on base class) ensures that either (in this order): // 1) baseAuthenticationParameters.HasUsernameAndPasswordOrToken returns true // OR // 2) HttpBasicAuthorizationParameters.HasUsernameAndPasswordOrToken returns true ExceptionUtils.ThrowIfNull(baseAuthenticationParameters); if (!baseAuthenticationParameters.HasUsernameAndPasswordOrToken) { ExceptionUtils.ThrowIfNull(HttpBasicAuthorizationParameters); ExceptionUtils.ThrowIfFalse(HttpBasicAuthorizationParameters.HasUsernameAndPasswordOrToken); baseAuthenticationParameters = HttpBasicAuthorizationParameters; } NamedOrAuthEndpointVisit visit = ServiceProvider.VisitProvider.GetVisit(baseAuthenticationParameters.Token, baseAuthenticationParameters.Username, baseAuthenticationParameters.Password); return(visit); }
public virtual HttpResponseMessage Get([FromUri] QueryParameters parameters) { NamedOrAuthEndpointVisit visit = GetNamedOrAuthEndpointVisit(parameters); FormattedPaginatedContentRequest request = new FormattedPaginatedContentRequest(); request.FlowName = parameters.Dataflow; request.OperationName = parameters.Request; request.Paging = new PaginationIndicator(); request.Paging.Start = parameters.RowId.HasValue ? parameters.RowId.Value : 0; request.Paging.Count = parameters.MaxRows.HasValue ? parameters.MaxRows.Value : -1; request.Parameters = parameters.ParseParams(); request.ZipResults = parameters.ZipResults; PaginatedContentResult resultSet = ServiceProvider.TransactionService.QueryEx(request, visit); if ((resultSet == null) || !resultSet.HasContent) { return(this.Request.CreateBadRequestResponse("No data was returned from the query.")); } HttpResponseMessage responseMessage = new HttpResponseMessage(); switch (resultSet.Content.Type) { case CommonContentType.XML: case CommonContentType.Flat: case CommonContentType.HTML: responseMessage.Content = new StringContent(resultSet.ConvertContentBytesToString()); break; default: responseMessage.Content = new ByteArrayContent(resultSet.Content.Content); break; } responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue(CommonContentAndFormatProvider.ConvertToMimeType(resultSet.Content.Type)); return(responseMessage); }
protected virtual void ValidateQueryResult(PaginatedContentResult result, FormattedPaginatedContentRequest request, NamedOrAuthEndpointVisit visit) { if ((result != null) && result.HasContent) { if (MaxRestQueryResponseKilobytes > 0) { if (result.Content.Content.Length > (MaxRestQueryResponseKilobytes * 1024L)) { throw FaultProvider.GetFault(visit.Version, ENExceptionCodeType.E_QueryReturnSetTooBig, "The requested data result set is too large. Please modify the query parameters so that a smaller data result set is returned."); } } } }