【发布时间】:2019-11-15 16:27:04
【问题描述】:
我正在设置 CRM 360 数据导出服务 (DES) 需要连接到的 Azure 数据库。我可以使用 SSMS 手动执行此操作并使用我的 azure 帐户登录。
然后将 DES 服务帐户设置为外部提供者。
从外部提供商创建用户 DynamicsDataExportService
一切都好,但是我希望自动化该过程,因此我需要使用 C# 登录到服务并以这种方式连接和运行代码。
我正在使用以下代码运行带有 System.Data.SqlClient 4.7 的核心 2.2:
var cs = "data source=tcp:dvzxfsdg-sql.database.windows.net,1433;initial catalog=dfsdfs-sqldb; Authentication=Active Directory Integrated";
using (var connection = new SqlConnection(cs))
{
connection.Open();
令人讨厌的是它给出了错误
“System.ArgumentException:'不支持关键字:'身份验证'。'”。
我很确定我犯的错误是相当基本的,但我似乎无法深入了解它。因此,任何指针都非常感激。
【问题讨论】:
-
尝试从连接字符串中删除 tcp:,我认为您也不需要指定端口 (1433)。
-
我对 SQL 所做的是先获取 SQL DB 的 Azure AD 访问令牌,然后在打开之前将其分配给 SqlConnection。连接字符串只定义了服务器和数据库名称,没有别的。
-
我终于意识到 dotnet core 2.0 不支持这种类型的登录,所以最终不得不掏出一个框架版本的应用程序。相同的代码当时运行良好。感谢大家尝试提供帮助。非常感谢。