/// <inheritdoc /> public override void OnActionExecuting(ActionExecutingContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (context.ActionDescriptor.FilterDescriptors.Any(x => x.Filter is IgnoreRequestsSignatureValidationAttribute)) { return; } var validationResult = context.HttpContext.GetSignatureValidationResult(); if (validationResult == null || !AcceptedStatus.Contains(validationResult.Status)) { if (ThrowsOnValidationError) { throw new RequestsSignatureValidationException(validationResult); } context.Result = new UnauthorizedResult(); return; } if (ClientIds != null && ClientIds.Any()) { if (!ClientIds.Contains(validationResult.ClientId)) { if (ThrowsOnValidationError) { throw new RequestsSignatureValidationException(validationResult); } context.Result = new StatusCodeResult(StatusCodes.Status403Forbidden); return; } } base.OnActionExecuting(context); }
public bool IsAccepted(ViewData dataEntry) { if (ClientIds != null && !ClientIds.Contains(dataEntry.ClientId)) { return(false); } if (Type != null && dataEntry.DataManagerType.TypeId.IndexOf(Type, StringComparison.OrdinalIgnoreCase) == -1) { return(false); } if (!string.IsNullOrEmpty(SearchText) && (dataEntry.EntryName.IndexOf(SearchText, StringComparison.OrdinalIgnoreCase) == -1 || dataEntry.DataManagerType.TypeId.IndexOf(SearchText, StringComparison.OrdinalIgnoreCase) == -1)) { return(false); } return(true); }