internal async Task <SharedAccessQueuePolicies> GetPoliciesAsync(IStorageQueueManagement localChannel, string queueName, string policyName) { CloudQueue queue = localChannel.GetQueueReference(queueName); QueuePermissions queuePermissions = await localChannel.GetPermissionsAsync(queue).ConfigureAwait(false); return(queuePermissions.SharedAccessPolicies); }
/// <summary> /// Validate the queue access policy /// </summary> /// <param name="policy">SharedAccessBlobPolicy object</param> /// <param name="policyIdentifier">The policy identifier which need to be checked.</param> public static bool ValidateQueueAccessPolicy(IStorageQueueManagement channel, string queueName, SharedAccessQueuePolicy policy, string policyIdentifier) { if (string.IsNullOrEmpty(policyIdentifier)) { return(true); } CloudQueue queue = channel.GetQueueReference(queueName); QueueRequestOptions options = null; OperationContext context = null; QueuePermissions permission = channel.GetPermissions(queue, options, context); SharedAccessQueuePolicy sharedAccessPolicy = GetExistingPolicy <SharedAccessQueuePolicy>(permission.SharedAccessPolicies, policyIdentifier); if (policy.Permissions != SharedAccessQueuePermissions.None) { throw new ArgumentException(Resources.SignedPermissionsMustBeOmitted); } if (policy.SharedAccessExpiryTime.HasValue && sharedAccessPolicy.SharedAccessExpiryTime.HasValue) { throw new ArgumentException(Resources.SignedExpiryTimeMustBeOmitted); } return(!sharedAccessPolicy.SharedAccessExpiryTime.HasValue); }
internal async Task<SharedAccessQueuePolicies> GetPoliciesAsync(IStorageQueueManagement localChannel, string queueName, string policyName) { CloudQueue queue = localChannel.GetQueueReference(queueName); QueuePermissions queuePermissions = await localChannel.GetPermissionsAsync(queue); return queuePermissions.SharedAccessPolicies; }