使用 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有三种方式(不使用,动态使用,静态使用,默认是动态使用)