C# 在不使用用户ID和密码的情况下对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

我正在尝试使用此代码通过c对我的Azure SQL进行身份验证。代码可以工作,但我不想使用我的用户名和密码。我可以使用其他任何东西进行身份验证吗?代币

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实现,托管身份也可以被授予对密钥保险库的访问策略