Example #1
0
        /// <summary>
        /// Create a permissions string to provide
        /// <see cref="ShareSasBuilder.Permissions"/>.
        /// </summary>
        /// <returns>A permissions string.</returns>
        internal static string ToPermissionsString(this ShareSasPermissions permissions)
        {
            var sb = new StringBuilder();

            if ((permissions & ShareSasPermissions.Read) == ShareSasPermissions.Read)
            {
                sb.Append(Constants.Sas.Permissions.Read);
            }
            if ((permissions & ShareSasPermissions.Create) == ShareSasPermissions.Create)
            {
                sb.Append(Constants.Sas.Permissions.Create);
            }
            if ((permissions & ShareSasPermissions.Write) == ShareSasPermissions.Write)
            {
                sb.Append(Constants.Sas.Permissions.Write);
            }
            if ((permissions & ShareSasPermissions.Delete) == ShareSasPermissions.Delete)
            {
                sb.Append(Constants.Sas.Permissions.Delete);
            }
            if ((permissions & ShareSasPermissions.List) == ShareSasPermissions.List)
            {
                sb.Append(Constants.Sas.Permissions.List);
            }
            return(sb.ToString());
        }
Example #2
0
    public async Task <Uri> CreateShareSasUriAsync(string shareName, string directoryPath, ShareSasPermissions permissions, DateTimeOffset expiresOn)
    {
        if (string.IsNullOrWhiteSpace(shareName))
        {
            throw new ArgumentException($"'{nameof(shareName)}' cannot be null or whitespace.", nameof(shareName));
        }

        if (string.IsNullOrWhiteSpace(directoryPath))
        {
            throw new ArgumentException($"'{nameof(directoryPath)}' cannot be null or whitespace.", nameof(directoryPath));
        }

        var client = await CreateShareClientAsync(shareName, useSharedKey : true)
                     .ConfigureAwait(false);

        return(client.GenerateSasUri(permissions, expiresOn));
    }