【发布时间】:2020-01-14 05:44:58
【问题描述】:
web config 中的连接字符串保存了用户名和密码,但我不想在 web config 中保存密码。
我在我的应用程序中使用实体框架。现在我正在尝试将 Azure SQL 数据库与托管标识一起使用。
我尝试使用文档中的Secure Azure SQL Database connection from App Service using a managed identity 教程
我在网络配置中的连接字符串:-
添加 name="Context" connectionString="metadata=res:///PubsuiteModel.csdl|res:///PubsuiteModel.ssdl|res://*/PubsuiteModel.msl;provider =System.Data.SqlClient;provider connection string="server=servername.database.windows.net;database=dbname;UID=AnyString;Authentication=Active Directory Interactive;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System. Data.EntityClient"
当我尝试从数据库中获取记录时,出现以下错误:-
错误:-底层提供程序在打开时失败。
InnerException = 无法实例化身份验证提供程序 类型 'Microsoft.Azure.Services.AppAuthentication.SqlAppAuthenticationProvider, Microsoft.Azure.Services.AppAuthentication' 用于 'ActiveDirectoryInteractive'。
如何使用托管标识的 Azure SQL 数据库为实体框架创建连接字符串?
【问题讨论】:
-
现在已格式化。请投票。
-
@PanagiotisKanavos 你能分享链接吗?
-
这是您使用的,但复制错误。您没有发布 您的 代码,也没有发布您尝试过的内容,或者即使您使用 ASP.NET 或 ASP.NET Core。该教程展示了如何使用 ASP.NET 或 ASP.NET Core。在这两种情况下,它都显示了如何添加必要的提供者。
-
我正在使用 asp.net。我尝试过的是最初我使用 azure sql db 创建了实体框架。它将用户名和密码存储在网络配置中,但我不想要。所以我尝试了上面的链接,但是当我从数据库中获取任何记录时,它会抛出错误。
-
您可以尝试将密码存储在keyvault中,这样更容易。
标签: c# entity-framework-6 azure-managed-identity