如何使用C#连接kusto数据库?

问题描述

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)都不包含此方法。

enter image description here enter image description here

您可以使用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)构建的软件包的新版本,该版本将在所有平台上公开此方法(交互式用户身份验证)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...