AzureSasCredentialSynchronousPolicy
using Azure.Core;
using System;
using System.Runtime.CompilerServices;
namespace Azure.Storage.Common
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
internal class AzureSasCredentialSynchronousPolicy
{
[System.Runtime.CompilerServices.NullableContext(0)]
private class AzureSasSignatureHistory
{
}
private readonly AzureSasCredential _credential;
public AzureSasCredentialSynchronousPolicy(AzureSasCredential credential)
: this()
{
Argument.AssertNotNull<AzureSasCredential>(credential, "credential");
_credential = credential;
}
public override void OnSendingRequest(HttpMessage message)
{
string query = message.get_Request().get_Uri().get_Query();
string text = _credential.get_Signature();
if (text.StartsWith("?", StringComparison.InvariantCulture))
text = text.Substring(1);
if (query.Contains(text))
return;
object obj = default(object);
if (message.TryGetProperty(typeof(AzureSasSignatureHistory), ref obj)) {
string text2 = obj as string;
if (text2 != null && query.Contains(text2)) {
query = query.Replace(text2, text);
goto IL_0090;
}
}
query = (string.IsNullOrEmpty(query) ? ("?" + text) : (query + "&" + text));
goto IL_0090;
IL_0090:
message.get_Request().get_Uri().set_Query(query);
message.SetProperty(typeof(AzureSasSignatureHistory), (object)text);
this.OnSendingRequest(message);
}
}
}