Пример #1
0
        /// <summary>
        /// Validate the table access policy
        /// </summary>
        /// <param name="policy">SharedAccessBlobPolicy object</param>
        /// <param name="policyIdentifier">The policy identifier which need to be checked.</param>
        internal static bool ValidateTableAccessPolicy(IStorageTableManagement channel,
                                                       string tableName, XTable.SharedAccessTablePolicy policy, string policyIdentifier)
        {
            if (string.IsNullOrEmpty(policyIdentifier))
            {
                return(true);
            }
            XTable.CloudTable          table      = channel.GetTableReference(tableName);
            XTable.TableRequestOptions options    = null;
            XTable.OperationContext    context    = null;
            XTable.TablePermissions    permission = channel.GetTablePermissions(table, options, context);

            XTable.SharedAccessTablePolicy sharedAccessPolicy =
                GetExistingPolicy <XTable.SharedAccessTablePolicy>(permission.SharedAccessPolicies, policyIdentifier);

            if (policy.Permissions != XTable.SharedAccessTablePermissions.None)
            {
                throw new ArgumentException(Resources.SignedPermissionsMustBeOmitted);
            }

            if (policy.SharedAccessExpiryTime.HasValue && sharedAccessPolicy.SharedAccessExpiryTime.HasValue)
            {
                throw new ArgumentException(Resources.SignedExpiryTimeMustBeOmitted);
            }

            return(!sharedAccessPolicy.SharedAccessExpiryTime.HasValue);
        }
Пример #2
0
 public virtual Task SetPermissionsAsync(TablePermissions permissions, TableRequestOptions requestOptions, OperationContext operationContext, CancellationToken cancellationToken)
 {
     requestOptions   = TableRequestOptions.ApplyDefaults(requestOptions, ServiceClient);
     operationContext = (operationContext ?? new OperationContext());
     return(ServiceClient.Executor.SetTablePermissionsAsync(permissions, ServiceClient, this, requestOptions, operationContext, cancellationToken));
 }
Пример #3
0
 public virtual Task SetPermissionsAsync(TablePermissions permissions, TableRequestOptions requestOptions, OperationContext operationContext)
 {
     return(SetPermissionsAsync(permissions, requestOptions, operationContext, CancellationToken.None));
 }
Пример #4
0
 public virtual Task SetPermissionsAsync(TablePermissions permissions, CancellationToken cancellationToken)
 {
     return(SetPermissionsAsync(permissions, null, null, cancellationToken));
 }
Пример #5
0
 public virtual Task SetPermissionsAsync(TablePermissions permissions)
 {
     return(SetPermissionsAsync(permissions, CancellationToken.None));
 }
Пример #6
0
 public virtual void SetPermissions(TablePermissions permissions, TableRequestOptions requestOptions = null, OperationContext operationContext = null)
 {
     requestOptions   = TableRequestOptions.ApplyDefaults(requestOptions, ServiceClient);
     operationContext = (operationContext ?? new OperationContext());
     ServiceClient.Executor.SetTablePermissions(permissions, ServiceClient, this, requestOptions, operationContext);
 }