我试图通过c#代码(代码如下)使用Azure AD凭据连接到Azure数据库.它在我的系统上工作正常.但是当我将它部署到32位VM时,它会显示错误
"不支持关键字:身份验证".
VM安装了.Net framework 4.5(但不是Visual Studio).应用程序的目标是.Net Framework 4.5.
根据我的观察,框架2.0的system.data不支持SQLConnection类的authentication关键字.但我的应用程序是针对4.5,所以它应该可以正常安装4.5.任何人都可以帮助解决它.以下是我的代码
class Program
{
static void Main(string[] args)
{
try
{
string ConnectionString =
@"Data Source=mydatabase.database.windows.net; Authentication=Active Directory Password; UID=user.name@microsoft.contoso.com; PWD=Test@pswd";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
Console.WriteLine("connected");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
这个答案是关于 dotnet core 而不是 .NET Framework 4.5/6,因此它不会直接回答您的问题。但是,它可能会帮助您向客户部署代码。
我在尝试从 dotnet-core 连接时遇到了相同的错误。来自微软:
从 .NET Core 2.2 开始,Azure Active Directory 颁发的访问令牌可用于对 Azure SQL 数据库进行身份验证。为了支持访问令牌,该
AccessToken属性已添加到SqlConnection类中。要利用 AAD 身份验证,请下载System.Data.SqlClientNuGet 包的 4.6 版。为了使用该功能,您可以使用NuGet 包中包含的适用于 .NET 的Active Directory 身份验证库Microsoft.IdentityModel.Clients.ActiveDirectory获取访问令牌值。
| 归档时间: |
|
| 查看次数: |
2568 次 |
| 最近记录: |