问题描述
WithAadUserPromptAuthentication错误,所以我不能使用Microsoft文档提供的示例代码? 那是 :
var serviceUri = "Service URI,typically of the form https://cluster.region.kusto.windows.net";
var authority = "contoso.com"; // Or the AAD tenant GUID: "..."
// Recommended Syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
.WithAadUserPromptAuthentication(authority);
// Legacy Syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
{
FederatedSecurity = true,InitialCatalog = "NetDefaultDB",Authority = authority,};
// Equivalent Kusto connection string: $"Data Source={serviceUri};Database=NetDefaultDB;Fed=True;Authority Id={authority}"
是否有任何新的解决方案代替WithAadUserPromptAuthentication方法?
解决方法
恐怕WithAadUserPromptAuthentication
已从KustoConnectionStringBuilder
转移。 Microsoft.Azure.Kusto.Data.NETStandard(6.1.8)和Microsoft.Azure.Kusto.Data(8.1.5)都不包含此方法。
您可以使用ApplicationClientId和ApplicationKey尝试此示例。或来自here的其他方法。
var serviceUri = "Service URI,typically of the form https://cluster.region.kusto.windows.net";
var authority = "contoso.com"; // Or the AAD tenant GUID: "..."
var applicationClientId = <ApplicationClientId>;
var applicationKey = <ApplicationKey>;
// Recommended syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
.WithAadApplicationKeyAuthentication(applicationClientId,applicationKey,authority);
// Legacy syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
{
FederatedSecurity = true,InitialCatalog = "NetDefaultDB",ApplicationClientId = applicationClientId,ApplicationKey = applicationKey,Authority = authority,};
// Equivalent Kusto connection string: $"Data Source={serviceUri};Database=NetDefaultDB;Fed=True;AppClientId={applicationClientId};AppKey={applicationKey};Authority Id={authority}"
,
不推荐使用Microsoft.Azure.Kusto.Data.NETStandard,并且不再对其进行维护。 请使用Microsoft.Azure.Kusto.Data程序包(.Net框架和.Net Core版本)。
由于使用了身份验证库(ADAL),因此.Net Core仅适用于.Net Framework程序包,该方法不可用。 可以与.Net Core一起使用的解决方法是,通过在KustoConnectionStringBuilder实例上手动设置以下属性来触发用户名/密码验证:FederatedSecurity,UserID,Password和Authority。
我们计划发布使用下一代身份验证库(MSAL)构建的软件包的新版本,该版本将在所有平台上公开此方法(交互式用户身份验证)。