2015-06-10 6 views
8

Ich habe einen Azure Service Bus-REST-API-Client implementiert. Im Moment baue ich xUnit-Tests für mein REST-Projekt und muss eine Warteschlange mit einem vom Test bereitgestellten Namen erstellen, Nachrichten mit dem REST-Client senden und dann die Warteschlange mit diesem spezifischen Namen löschen.Erstelle die Azure Service Bus-Warteschlange Freigegebene Zugriffsrichtlinien programmgesteuert

Eine meiner Anforderungen besteht darin, eine Shared Access Policy für die neu erstellte Queue mit programmgesteuerten Sendeberechtigungen anzugeben, aber ich kann online nichts finden, was darauf schließen lässt, dass dies möglich ist.

Bisher habe ich diese

TokenProvider credentials = TokenProvider.CreateSharedAccessSignatureTokenProvider("MyBusAccessPolicy", "XXXXXXXXXXXXXXXX"); 
NamespaceManager namespaceManager = new NamespaceManager(ServiceBusEnvironment.CreateServiceUri("sb", _serviceNamespace, string.Empty), credentials); 
QueueDescription queueDescription = await namespaceManager.CreateQueueAsync(queueName); 

Wie würde ich gehen für diese Warteschlange des Shared Access Policy speziell zu erstellen, wenn überhaupt möglich?

Antwort

6

Neil,

So etwas wie dies funktionieren sollte:

string queuePolicyName = "SendPolicy"; 
string queuePrimaryKey = SharedAccessAuthorizationRule.GenerateRandomKey(); 

QueueDescription queueDescription = new QueueDescription(queueName); 
SharedAccessAuthorizationRule queueSharedAccessPolicy = new SharedAccessAuthorizationRule(queuePolicyName, queuePrimaryKey, new[] { AccessRights.Send }); 
queueDescription.Authorization.Add(queueSharedAccessPolicy); 

await _namespaceManager.CreateQueueAsync(queueDescription); 
+0

Dank Seth! Das hat gut funktioniert – Neil

+0

Wie können wir das von Powershell erreichen? –