UserDelegationKeyProperties
Encapsulates the shared properties used by both
BlobSasQueryParameters and DataLakeSasQueryParameters.
using System;
using System.Globalization;
using System.Net;
using System.Text;
namespace Azure.Storage.Sas
{
internal class UserDelegationKeyProperties
{
internal string ObjectId { get; set; }
internal string TenantId { get; set; }
internal DateTimeOffset StartsOn { get; set; }
internal DateTimeOffset ExpiresOn { get; set; }
internal string Service { get; set; }
internal string Version { get; set; }
public void AppendProperties(StringBuilder stringBuilder)
{
if (!string.IsNullOrWhiteSpace(ObjectId))
stringBuilder.AppendQueryParameter("skoid", ObjectId);
if (!string.IsNullOrWhiteSpace(TenantId))
stringBuilder.AppendQueryParameter("sktid", TenantId);
DateTimeOffset dateTimeOffset;
if (StartsOn != DateTimeOffset.MinValue) {
dateTimeOffset = StartsOn;
stringBuilder.AppendQueryParameter("skt", WebUtility.UrlEncode(dateTimeOffset.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture)));
}
if (ExpiresOn != DateTimeOffset.MinValue) {
dateTimeOffset = ExpiresOn;
stringBuilder.AppendQueryParameter("ske", WebUtility.UrlEncode(dateTimeOffset.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture)));
}
if (!string.IsNullOrWhiteSpace(Service))
stringBuilder.AppendQueryParameter("sks", Service);
if (!string.IsNullOrWhiteSpace(Version))
stringBuilder.AppendQueryParameter("skv", Version);
}
}
}