Мой код выглядит следующим образом:
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
object[] eventGridMessages = (object[])actionContext.ActionArguments.FirstOrDefault().Value;
if (eventGridMessages == null || (eventGridMessages != null && eventGridMessages.Length <= 0))
{
throw new ArgumentNullException("eventGridMessages", "eventGridMessages parameter cannot be empty.");
}
if (actionContext.HttpContext.Request.Headers.ContainsKey("aeg-event-type") && actionContext.HttpContext.Request?.Headers["aeg-event-type"].ToString() == "SubscriptionValidation")
{
actionContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.OK;
var x = this.GetValidationCodeResponse(eventGridMessages[0].ToString());
actionContext.HttpContext.Response.ContentType = "application/json";
actionContext.HttpContext.Response.Body = new MemoryStream(Encoding.UTF8.GetBytes(x, 0 , x.Length));
}
return;
}
/// <summary>
/// Gets the validation code response.
/// </summary>
/// <param name="validationRequest">The validation request.</param>
/// <returns>Validation Response Message</returns>
private string GetValidationCodeResponse(string validationRequest)
{
var validationRequestJson = JsonConvert.DeserializeObject<CustomEvent<EventSubscritionValidationCode>>(Convert.ToString(validationRequest));
var validationResponse = JsonConvert.SerializeObject(new { validationResponse = "644e4387-465f-46ee-8df9-b5330c3bda69" });
return validationResponse;
}
Примечание. Я выполняю AzureEventGrid
операции. В целях аутентификации я реализую этот фильтр, который содержит код подтверждения. Ранее во фреймворке у нас был ответ типа HttpResponseMessage
, где мы можем установить данные как
actionContext.Response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.OK,
Content = new StringContent("JSON data")
}
, но в .NET Core он был изменен на HttpResponse
, и это абстрактный класс, в котором яне могу создать экземпляр, и я не могу установить ответ JSON на HttpResponse
.
Я не могу увидеть свои данные JSON (GUID) на HttpResponse
.
Может кто-то помочьмне с этим ??