StorageRequestValidationPipelinePolicy
Pipeline policy to verify x-ms-client-request-id and x-ms-client-return-request-id
headers that are echoed back from a request match.
using Azure.Core;
using Azure.Core.Pipeline;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Azure.Storage
{
internal class StorageRequestValidationPipelinePolicy : HttpPipelineSynchronousPolicy
{
public override void OnReceivedResponse(HttpMessage message)
{
string value;
IEnumerable<string> values;
if (message.HasResponse && message.Request.Headers.TryGetValue("x-ms-client-request-id", out value) && message.Response.Headers.TryGetValues("x-ms-client-request-id", out values) && !string.Equals(value, values.First(), StringComparison.OrdinalIgnoreCase))
throw Errors.ClientRequestIdMismatch(message.Response, values.First(), value);
}
}
}