C# 在不使用用户ID和密码的情况下对Azure SQL数据库进行身份验证
我正在尝试使用此代码通过c对我的Azure SQL进行身份验证。代码可以工作,但我不想使用我的用户名和密码。我可以使用其他任何东西进行身份验证吗?代币C# 在不使用用户ID和密码的情况下对Azure SQL数据库进行身份验证,c#,authentication,azure-sql-database,C#,Authentication,Azure Sql Database,我正在尝试使用此代码通过c对我的Azure SQL进行身份验证。代码可以工作,但我不想使用我的用户名和密码。我可以使用其他任何东西进行身份验证吗?代币 using System; using System.Data.SqlClient; using System.Text; namespace sqltest { class Program { static void Main(string[] args) { try
using System;
using System.Data.SqlClient;
using System.Text;
namespace sqltest
{
class Program
{
static void Main(string[] args)
{
try
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "<server>.database.windows.net";
builder.UserID = "<username>";
builder.Password = "<password>";
builder.InitialCatalog = "<database>";
using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
{
Console.WriteLine("\nQuery data example:");
Console.WriteLine("=========================================\n");
StringBuilder sb = new StringBuilder();
sb.Append("SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName ");
sb.Append("FROM [SalesLT].[ProductCategory] pc ");
sb.Append("JOIN [SalesLT].[Product] p ");
sb.Append("ON pc.productcategoryid = p.productcategoryid;");
String sql = sb.ToString();
using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine("{0} {1}", reader.GetString(0), reader.GetString(1));
}
}
}
}
}
catch (SqlException e)
{
Console.WriteLine(e.ToString());
}
Console.ReadLine();
}
}
}
您可以使用SQL配置和管理Azure Active Directory身份验证。有关详细信息,请参阅。您可以使用两种方法。 1.对Azure资源使用托管标识 这是推荐的方法,在此方法中,代码将使用azure标识生成令牌。 .NET Framework 4.6或更高版本或.NET Core 2.2或 使用访问令牌方法需要更高的值 有关更多信息-> 2.在azure密钥库中存储敏感信息用户名/密码/连接字符串
如前所述,托管身份是实现这一目标的方法。这也可以通过ARM实现,托管身份也可以被授予对密钥保险库的访问策略