2015-06-10 8 views
8

Ho implementato un client API REST di Azure Service Bus. Al momento sto costruendo xUnit test per il mio progetto REST e ho bisogno di creare una coda con un nome fornito dal test, inviare messaggi con il client REST e quindi eliminare la coda con quel nome specifico.Crea coda di servizio di Azure Criteri di accesso condiviso programmaticamente

Uno dei miei requisiti è specificare un criterio di accesso condiviso per la coda appena creata con solo autorizzazioni di invio a livello di codice, ma non riesco a trovare nulla online che suggerisca che ciò sia possibile.

Finora ho questo

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

Come potrei procedere per creare il criterio di accesso condiviso specificatamente per quella coda, se possibile?

risposta

6

Neil,

Qualcosa del genere dovrebbe funzionare:

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

Grazie Seth! Questo ha funzionato bene – Neil

+0

Come possiamo ottenere questo da PowerShell? –