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

Service Bus Connection String using the Azure.ServiceBus.Messaging C# SDK for SAS token

我正在尝试从旧版 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 执行相同的操作?

要使用 SAS 令牌,我们建议您使用 overload that accepts an AzureSasCredential 而不是连接字符串来构造 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>>"