[更新1]
我可以使用以下连接字符串使其工作
Server=tcp:mydatabaseserver.database.windows.net,1433;Initial Catalog=mydbname
并实现一个拦截器,如中提到的本文 https://gasior.net.pl/blog/passwordless-connection-string-to-azure-sql-database-from-net-core-api/.
这证明Azure配置正确,问题出在应用程序的某个地方(可能是缺少包?)。
无论如何,我仍然希望能够更改连接字符串并在 AAD 身份验证和 sql 身份验证之间切换,而无需在应用程序中添加其他逻辑。
[/更新1]
我在用着EF 核心 3.1.4在 Azure WebApp 上,我想使用分配给应用程序的 Azure AD 身份进行身份验证,但遇到以下异常:
ArgumentException: Invalid value for key 'authentication'.
Microsoft.Data.Common.DbConnectionStringBuilderUtil.ConvertToAuthenticationType(string keyword, object value)
这是连接字符串:
{
"ConnectionStrings": {
"Admin": "Server=tcp:mydatabaseserver.database.windows.net,1433;Initial Catalog=mydbname;Authentication=Active Directory Integrated"
}
}
我使用以下代码初始化上下文:
var connectionString = this.Configuration.GetConnectionString("Admin");
services.AddDbContext<NetCoreDataContext>(builder => builder.UseSqlServer(connectionString));
The Microsoft.Azure.Services.AppAuthentication
包也被导入(版本1.5.0)