使用 Azure.ServiceBus.Messaging C# SDK for SAS 令牌的服务总线连接字符串

Posted

技术标签:

【中文标题】使用 Azure.ServiceBus.Messaging C# SDK for SAS 令牌的服务总线连接字符串【英文标题】:Service Bus Connection String using the Azure.ServiceBus.Messaging C# SDK for SAS token 【发布时间】:2022-01-15 00:00:53 【问题描述】:

我正在尝试从旧版 Azure 服务总线 SDK 迁移到新的“Azure.Messaging.ServiceBus”。但似乎不支持旧功能中的许多功能。如何使用给定的 Sas 令牌生成服务总线连接字符串?较旧的可以使用“ServiceBusConnectionBuilder”。 (https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.servicebus.servicebusconnectionstringbuilder.-ctor?view=azure-dotnet#Microsoft_Azure_ServiceBus_ServiceBusConnectionStringBuilder__ctor_System_String_) .如何使用最新的 SDK 做同样的事情?

【问题讨论】:

【参考方案1】:

要使用 SAS 令牌,我们建议您使用接受 AzureSasCredential 而不是连接字符串的 overload 构造 ServiceBusClient。这样做的好处是允许更新 SAS 令牌,而无需销毁和重新创建客户端。

例如:

var credential = new AzureSasCredential("<< SHARED ACCESS KEY STRING >>");
var fullyQualifiedNamespace = "<< NAMESPACE (likely similar to your-namespace.servicebus.windows.net) >>";

await using var client = new ServiceBusClient(fullyQualifiedNamespace, credential);

// ...

虽然我们不推荐或宣传它,但连接字符串中支持SharedAccessSignature 令牌,导致类似:

"Endpoint=sb://<<namespace-name>>.servicebus.windows.net;SharedAccessSignature=<<SAS TOKEN>>"

【讨论】:

但是您刚刚分享并公开了它......为什么不在文档中正确地做呢? ? 有些决定不是我能做的…… 如果有合适的位置,我很乐意添加我的 ?。

以上是关于使用 Azure.ServiceBus.Messaging C# SDK for SAS 令牌的服务总线连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)