【问题标题】:Update azure service bus queue shared access policy programmatically以编程方式更新 Azure 服务总线队列共享访问策略
【发布时间】:2017-02-28 12:29:11
【问题描述】:

我想以编程方式更改队列(在我们的例子中是服务总线)的访问规则的主键和辅助键(我们想每天重新生成一次主键)。 我想在现有队列创建后对其执行此操作。 我知道这可以从 Azure 门户完成(通过单击策略窗口的“Regen prim key”和“Regen sec key”),但我没有设法从我的 .Net 代码中做到这一点。

我的代码如下:

SharedAccessAuthorizationRule rule;
            if (!queueDescription.Authorization.TryGetSharedAccessAuthorizationRule(ruleName, out rule))
            {
                // error
            }

            rule.SecondaryKey = rule.PrimaryKey;
            rule.PrimaryKey = SharedAccessAuthorizationRule.GenerateRandomKey();

这段代码之后,规则没有改变.....

还有其他方法吗...?

谢谢

【问题讨论】:

    标签: azure azureservicebus


    【解决方案1】:

    我知道这可以通过 Azure 门户完成(通过单击策略窗口的“Regen prim key”和“Regen sec key”),但我没有设法从我的 .Net 代码中做到这一点。

    在为您的授权规则重新生成/重置 PrimaryKey 后,请尝试致电 UpdateQueue(QueueDescription) method 更新队列。您可以参考以下示例代码。

    string connectionString = "Endpoint=sb://fehanservicebustest.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey={accesskey}";
    string queueName = "{queuename}";
    
    var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
    
    
    QueueDescription queueDescription = namespaceManager.GetQueue(queueName);
    
    SharedAccessAuthorizationRule rule;
    
    queueDescription.Authorization.TryGetSharedAccessAuthorizationRule("fehanlistenpolicy", out rule);
    
    string newkey = SharedAccessAuthorizationRule.GenerateRandomKey();
    rule.PrimaryKey = newkey;
    
    namespaceManager.UpdateQueue(queueDescription);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-02
      • 2015-02-17
      • 1970-01-01
      • 2021-03-31
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多