以编程方式更新 Azure 服务总线队列共享访问策略
Update azure service bus queue shared access policy programmatically
我想以编程方式更改队列(在我们的例子中是服务总线)访问规则的主键和辅助键(我们想每天重新生成一次主键)。
我想在创建现有队列后对其执行此操作。
我知道这可以从 Azure 门户完成(通过单击策略 windows 的 "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();
此代码后,规则未更改.....
还有其他方法吗...?
谢谢
I know this can be done from the Azure portal (by clicking on the "Regen prim key" and "Regen sec key" of the policy windows) but I didn't manage to do it from my .Net code.
请尝试调用 UpdateQueue(QueueDescription) method 以在您 regenerate/reset 您的授权规则的主键之后更新队列。您可以参考下面的示例代码。
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);
我想以编程方式更改队列(在我们的例子中是服务总线)访问规则的主键和辅助键(我们想每天重新生成一次主键)。 我想在创建现有队列后对其执行此操作。 我知道这可以从 Azure 门户完成(通过单击策略 windows 的 "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();
此代码后,规则未更改.....
还有其他方法吗...?
谢谢
I know this can be done from the Azure portal (by clicking on the "Regen prim key" and "Regen sec key" of the policy windows) but I didn't manage to do it from my .Net code.
请尝试调用 UpdateQueue(QueueDescription) method 以在您 regenerate/reset 您的授权规则的主键之后更新队列。您可以参考下面的示例代码。
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);