Beispiel #1
0
        public static void AuthorizeSASRequest(TableSignedAccessAccountIdentifier sasAccountIdentifier, PermissionLevel permissionLevel, SASPermission sasPermissionsRequired, string userTableName, bool isUtilityTableCommand)
        {
            if (sasAccountIdentifier == null)
            {
                return;
            }
            SASPermission signedAccessPermission = sasAccountIdentifier.SignedAccessPermission;

            if (isUtilityTableCommand)
            {
                throw new NephosUnauthorizedAccessException("Signed access not supported for this request.", sasAccountIdentifier.AccountName, sasAccountIdentifier.TableName, null, sasAccountIdentifier, permissionLevel, signedAccessPermission, AuthorizationFailureReason.InvalidOperationSAS);
            }
            if ((sasPermissionsRequired & ~45) != SASPermission.None)
            {
                NephosAssertionException.Fail(string.Format("Signed permission is not well formed. Signed permission: {0}", sasPermissionsRequired));
            }
            if (!string.Equals(sasAccountIdentifier.TableName, userTableName.ToLower(), StringComparison.Ordinal))
            {
                throw new NephosUnauthorizedAccessException("Signed access not supported for this request as table name did not match", sasAccountIdentifier.AccountName, sasAccountIdentifier.TableName, null, sasAccountIdentifier, permissionLevel, signedAccessPermission, AuthorizationFailureReason.InvalidOperationSAS);
            }
            if ((sasPermissionsRequired & signedAccessPermission) != sasPermissionsRequired)
            {
                throw new NephosUnauthorizedAccessException("Signed access insufficient permission", sasAccountIdentifier.AccountName, sasAccountIdentifier.TableName, null, sasAccountIdentifier, permissionLevel, signedAccessPermission, AuthorizationFailureReason.PermissionMismatch);
            }
        }
Beispiel #2
0
 public static IAsyncResult BeginListContainers(this IStorageAccount account, ServiceType serviceType, string containerName, ContainerPropertyNames propertyNames, string separator, string containerNameStart, IContainerCondition condition, int maxContainerNames, AsyncCallback callback, object state)
 {
     if (serviceType == ServiceType.BlobService)
     {
         return(account.BeginListBlobContainers(containerName, propertyNames, separator, containerNameStart, condition, maxContainerNames, callback, state));
     }
     NephosAssertionException.Fail("Invalid service type {0}.", new object[] { serviceType });
     return(null);
 }
Beispiel #3
0
 public static IBlobContainerCollection EndListContainers(this IStorageAccount account, ServiceType serviceType, IAsyncResult ar)
 {
     if (serviceType == ServiceType.BlobService)
     {
         return(account.EndListBlobContainers(ar));
     }
     NephosAssertionException.Fail("Invalid service type {0}.", new object[] { serviceType });
     return(null);
 }
Beispiel #4
0
 public static IContainer CreateContainerInstance(this IStorageManager storageManager, string accountName, string containerName, ServiceType serviceType)
 {
     if (serviceType == ServiceType.BlobService)
     {
         return(storageManager.CreateBlobContainerInstance(accountName, containerName));
     }
     NephosAssertionException.Fail("Invalid service type {0}.", new object[] { serviceType });
     return(null);
 }
Beispiel #5
0
 public static string GetString(BlobType blobType)
 {
     if (blobType == BlobType.ListBlob)
     {
         return("BlockBlob");
     }
     if (blobType == BlobType.AppendBlob)
     {
         return("AppendBlob");
     }
     if (blobType == BlobType.IndexBlob)
     {
         return("PageBlob");
     }
     NephosAssertionException.Fail("Invalid Parameter: blobType type:{0}", new object[] { blobType });
     return(null);
 }
Beispiel #6
0
 private NephosAuthorizationManager()
 {
     NephosAssertionException.Fail("NephosAuthorizationManager constructor with no parameters cannot be called");
 }