不确定您是否已解决此问题但想提供合适的答案,因为它可能会帮助其他人寻找相同或类似的解决方案。首先,在查看DbUp时,我没有看到对 Azure AD 身份验证的任何本机支持,但我认为您正在寻找以下内容。
使用 Azure AD auth 对 Azure SQL DB 的基于令牌的身份验证支持
链接的技术社区博客讨论了可用于对 Azure SQL 进行身份验证的所有 Azure AD 方法。它包含一个示例应用程序 ( TokenReadme.Zip ) 演示基于令牌的身份验证,其中TokenReadme.docxprogram.cs
中包含的示例如下:
using System;
using System.Data;
using System.Data.SqlClient;
namespace ClinicService
{
class Program
{
static void Main()
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder["Data Source"] = "aad-managed-demo.database.windows.net"; // replace with your server name
builder["Initial Catalog"] = "demo"; // replace with your database name
builder["Connect Timeout"] = 30;
string accessToken = TokenFactory.GetAccessToken();
if (accessToken == null)
{
Console.WriteLine("Fail to acuire the token to the database.");
}
using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
{
try
{
connection.AccessToken = accessToken;
connection.Open();
Console.WriteLine("Connected to the database");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Console.WriteLine("Please press any key to stop");
Console.ReadKey();
}
}
}
您应该能够利用 TokenReadme 示例来修改您的 DbUp .NET 库解决方案以利用基于令牌的身份验证。问候,迈克