我需要将数据发送到事件中心,但是需要授权用户这样做。
当前,我正在使用以下代码实现我的目标。
var ehClient = EventHubClient.CreateWithAzureActiveDirectory(
new Uri($"sb://{EventHubNamespace}.servicebus.windows.net/"),
EventHubName,
async (audience, authority, state) => {
var app = PublicClientApplicationBuilder.Create(ClientId)
.Build();
var authResult = await app.AcquireTokenInteractive(new[] { $"{audience}/.default" }).ExecuteAsync();
return authResult.AccessToken;
},
$"https://login.windows.net/{TenantId}");
await ehClient.SendAsync(new EventData(Encoding.UTF8.GetBytes("test data")));
使用此解决方案,用户每次将数据发送到EventHub时都必须进行身份验证。是否没有允许发送AcessToken而不是authCallback的解决方案?似乎有无数种有关如何请求AcessToken的示例,但是我找不到用于使用令牌访问资源的示例。 EventHub。