Возможно ли это, и если да, то как я могу это сделать?
Если я правильно понимаю, вам нужно создать политику с правом [send].А затем используйте policyName и сгенерированный ключ для создания токена sas.
Права, предоставляемые правилом политики, могут быть комбинацией:
- 'Отправить ' - Предоставляет право на отправку сообщений объекту
- ' Прослушивание ' - Предоставляет право на прослушивание (ретрансляция) или получение (очередь, подписка) и все связанные сообщения.обработка
- 'Управление' - Предоставляет право управлять топологией пространства имен, включая создание и удаление объектов
Для получения дополнительной информации, пожалуйста,обратитесь к этому документу .
Обновление:
Мы могли бы использовать Microsoft.Azure.Management.ServiceBus.Fluent создать политику.
var authorizationRuleName = "xxx"; //policy name
var credentials = SdkContext.AzureCredentialsFactory.FromFile(@"D:\Tom\Documents\azureCred.txt");
var restClient = RestClient.Configure().WithEnvironment(AzureEnvironment.AzureGlobalCloud)
.WithCredentials(credentials)
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Build();
System.Threading.CancellationToken cancellationToken = new System.Threading.CancellationToken();
ServiceBusManagementClient client = new ServiceBusManagementClient(restClient)
{
SubscriptionId = subscriptionId
};
List<AccessRights?> list = new List<AccessRights?> { AccessRights.Send};
//create policy
SharedAccessAuthorizationRuleInner result = client.Namespaces.CreateOrUpdateAuthorizationRuleAsync(resourceGroupName, nameSpace, authorizationRuleName, list, cancellationToken).Result;
//get key
var key = client.Namespaces.ListKeysAsync(resourceGroupName, nameSpace, authorizationRuleName).Result?.PrimaryKey;
Как создать файл azureCred, обратитесь к этому документу .