System.ArgumentException:'密钥'身份验证'的值无效

问题描述 投票:0回答:1

我有一个托管在 Azure 应用服务中的 Web 应用程序(在 .NET 4.6.1 上运行),该应用程序使用实体框架通过 SQL Server 身份验证(用户名/密码)连接到 Azure SQL Server,继承自

DbContext
System.Data.Entity
命名空间。

我计划使用 Active Directory 服务主体身份验证模式。因此,我将连接字符串修改为

Data Source= servername.database.windows.net; Encrypt=True; 
Initial Catalog= dbname; Authentication=Active Directory Service Principal; 
User Id=servicePrincipalID; Password=servicePrincipalPassword;

修改后的字符串会引发错误

System.ArgumentException:“密钥‘身份验证’的值无效。”

尝试打开连接时。许多在线文章/资源使用

Microsoft.EntityFrameworkCore
程序集对 .NET Core 应用程序进行了明确的集成,但对于在 .NET Framework 上运行的应用程序却没有太多内容。

如果您可以指导我们,请告诉我们。

asp.net-mvc entity-framework azure-sql-database
1个回答
0
投票

On Microsoft Documentation 指出应按如下所示构建连接字符串:

string ConnectionString = @"Server=demo.database.windows.net; Authentication=Active Directory Service Principal; Encrypt=True; Database=testdb; User Id=AppId; Password=secret";

using (SqlConnection conn = new SqlConnection(ConnectionString)) {
    conn.Open();
}

请注意,这种类型的身份验证需要 Entity Framework 4.6+ 上的 Microsoft.Data.SqlClient 版本 2.0.0+。

此外,您需要在 Azure SQL 数据库中创建与服务主体身份对应的用户。例如:

create user [servicePrincipalID] from external provider;

最后,确保设置所需的应用程序注册

© www.soinside.com 2019 - 2024. All rights reserved.