public AzureResourceSasGenerator With(SharedAccessAccountPermissions permissions) { if (permissions == default) { throw new Exception(); } Permissions = permissions; return(this); }
/// <summary> /// Set up access policy permission /// </summary> /// <param name="policy">SharedAccessBlobPolicy object</param> /// <param name="permission">Permisson</param> internal SharedAccessAccountPermissions SetupAccessPolicyPermission(string permission) { if (string.IsNullOrEmpty(permission)) { return(SharedAccessAccountPermissions.None); } SharedAccessAccountPermissions accountPermission = SharedAccessAccountPermissions.None; permission = permission.ToLower(); foreach (char op in permission) { switch (op) { case StorageNouns.Permission.Read: case StorageNouns.Permission.Query: accountPermission |= SharedAccessAccountPermissions.Read; break; case StorageNouns.Permission.Process: accountPermission |= SharedAccessAccountPermissions.ProcessMessages; break; case StorageNouns.Permission.Write: accountPermission |= SharedAccessAccountPermissions.Write; break; case StorageNouns.Permission.Add: accountPermission |= SharedAccessAccountPermissions.Add; break; case StorageNouns.Permission.Create: accountPermission |= SharedAccessAccountPermissions.Create; break; case StorageNouns.Permission.Update: accountPermission |= SharedAccessAccountPermissions.Update; break; case StorageNouns.Permission.Delete: accountPermission |= SharedAccessAccountPermissions.Delete; break; case StorageNouns.Permission.List: accountPermission |= SharedAccessAccountPermissions.List; break; default: throw new ArgumentException(string.Format(Resources.InvalidAccessPermission, op)); } } return(accountPermission); }
string GetSas(SharedAccessAccountPermissions permissions) { var policy = new SharedAccessAccountPolicy { Permissions = permissions, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTimeOffset.Now.AddDays(1), Protocols = SharedAccessProtocol.HttpsOrHttp, }; var sasToken = _storageAccount.GetSharedAccessSignature(policy); return(_container.Uri + sasToken); }
public void AccountSASPermissions() { // Single-threaded, takes 10 minutes to run // Parallelized, 1 minute. for (int i = 0; i < 0x100; i++) { Task[] tasks = new Task[3]; //each permission (0x100) times four services. SharedAccessAccountPermissions permissions = (SharedAccessAccountPermissions)i; SharedAccessAccountPolicy policy = GetPolicyWithFullPermissions(); policy.Permissions = permissions; tasks[0] = this.RunPermissionsTestBlobs(policy); tasks[2] = this.RunPermissionsTestQueues(policy); tasks[3] = this.RunPermissionsTestFiles(policy); Task.WaitAll(tasks); } }
/// <summary> /// Converts the permissions specified for the shared access policy to a string. /// </summary> /// <param name="permissions">A <see cref="SharedAccessAccountPermissions"/> object.</param> /// <returns>The shared access permissions in string format.</returns> public static string PermissionsToString(SharedAccessAccountPermissions permissions) { StringBuilder builder = new StringBuilder(); if ((permissions & SharedAccessAccountPermissions.Read) == SharedAccessAccountPermissions.Read) { builder.Append("r"); } if ((permissions & SharedAccessAccountPermissions.Add) == SharedAccessAccountPermissions.Add) { builder.Append("a"); } if ((permissions & SharedAccessAccountPermissions.Create) == SharedAccessAccountPermissions.Create) { builder.Append("c"); } if ((permissions & SharedAccessAccountPermissions.Update) == SharedAccessAccountPermissions.Update) { builder.Append("u"); } if ((permissions & SharedAccessAccountPermissions.ProcessMessages) == SharedAccessAccountPermissions.ProcessMessages) { builder.Append("p"); } if ((permissions & SharedAccessAccountPermissions.Write) == SharedAccessAccountPermissions.Write) { builder.Append("w"); } if ((permissions & SharedAccessAccountPermissions.Delete) == SharedAccessAccountPermissions.Delete) { builder.Append("d"); } if ((permissions & SharedAccessAccountPermissions.List) == SharedAccessAccountPermissions.List) { builder.Append("l"); } return(builder.ToString()); }
/// <summary> /// Converts the permissions specified for the shared access policy to a string. /// </summary> /// <param name="permissions">A <see cref="SharedAccessAccountPermissions"/> object.</param> /// <returns>The shared access permissions in string format.</returns> public static string PermissionsToString(SharedAccessAccountPermissions permissions) { StringBuilder builder = new StringBuilder(); if ((permissions & SharedAccessAccountPermissions.Read) == SharedAccessAccountPermissions.Read) { builder.Append("r"); } if ((permissions & SharedAccessAccountPermissions.Add) == SharedAccessAccountPermissions.Add) { builder.Append("a"); } if ((permissions & SharedAccessAccountPermissions.Create) == SharedAccessAccountPermissions.Create) { builder.Append("c"); } if ((permissions & SharedAccessAccountPermissions.Update) == SharedAccessAccountPermissions.Update) { builder.Append("u"); } if ((permissions & SharedAccessAccountPermissions.ProcessMessages) == SharedAccessAccountPermissions.ProcessMessages) { builder.Append("p"); } if ((permissions & SharedAccessAccountPermissions.Write) == SharedAccessAccountPermissions.Write) { builder.Append("w"); } if ((permissions & SharedAccessAccountPermissions.Delete) == SharedAccessAccountPermissions.Delete) { builder.Append("d"); } if ((permissions & SharedAccessAccountPermissions.List) == SharedAccessAccountPermissions.List) { builder.Append("l"); } return builder.ToString(); }
public static string PermissionsToString(SharedAccessAccountPermissions permissions) { throw new System.NotImplementedException(); }