我有一个ASP。. NET web应用程序运行在预置的windows服务器。我们需要从c#代码连接到Azure SQL MI。我尝试了下面的示例代码:
string ConnectionString1 = @"Server=demo.database.windows.net; Authentication=Active Directory Managed Identity; Encrypt=True; Database=testdb";
using (SqlConnection conn = new SqlConnection(ConnectionString1)) {
conn.Open(); //Erroring out
}
错误信息:Unhandled Exception: Microsoft.Data.Sqlclient.Sqlexception: ManagedIdentityCredential authentication failed: Managed identity response was not in expected format.
我错过了什么?
注意:我能够通过使用活动目录认证的SQL server管理工作室连接到相同的azure SQL管理实例。只有当我们尝试从c#代码
建立连接时才会看到这个问题我有一个ASP。. NET web应用程序在本地windows服务器上运行。
托管身份在本地服务器上不可用,除非它们配置为Azure ARC-Enabled
否则,要使用. net从本地服务器对托管实例进行身份验证,除了SQL身份验证甚至Windows身份验证外,您还可以使用这里记录的任何Azure AD身份验证方法。
但最常见的方法可能是
SQL Server认证
或
Active Directory服务主体认证