Bmo*_*moe 11 c# .net-4.0 azure-keyvault .net-4.7.1
如何在 ASP.NET Framework 4.7.1 WebForms 应用程序中实现 Microsoft 的 Azure KeyVault,以使用web.configKeyVault 中的值覆盖其中的值?我确实看到参考资料表明我们需要最低版本的 .NET Framework 4.7.1 才能做到这一点,但 Microsoft 提供的示例适用于 .NET Core。我的配置是web.config文件而不是appsettings.json. 我也有Global.asax.cs文件而不是Startup.cs和Program.cs。
要在 ASP.NET Framework 4.7.1 WebForms 应用程序中实现 Microsoft 的 Azure KeyVault,首先需要创建一个 Azure Key Vault。
\n\n\nASP.NET 中的配置生成器提供了一种通过使用不同的源(环境\n变量、Key Vault 等)来修改和/或覆盖来自配置文件(对于 ASP.NET 而言为 Web.config\n)的值的方法。 。
\n
连接到 Azure 密钥保管库:
\n若要从 Visual Studio 连接到 Azure Key Vault,您需要右键\n单击该项目并选择“添加”>“连接服务”菜单。\n
从选项中,选择“使用 Azure Key Vault 保护机密”选项。
\n然后单击“添加”按钮将密钥保管库引用添加到您的\n应用程序。这会将 NuGet 包\nMicrosoft.Configuration.ConfigurationBuilders.Azure 的引用添加到项目中。
\n它还会在 Web.Config 文件中添加一些配置。
\n(或者)
\n打开web.config文件,然后编写以下代码:
\na) 使用您的 keyvault 名称添加 configSections 和 configBuilders,如下所示
\n <configSections>\n <section\n name="configBuilders"\n type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"\n restartOnExternalChanges="false"\n requirePermission="false" />\n </configSections>\n <configBuilders>\n <builders>\n <add\n name="AzureKeyVault"\n vaultName="vaultname"\n type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Azure, Version=1.0.0.0, Culture=neutral"\n vaultUri="https://vaultname.vault.azure.net" />\n </builders>\n </configBuilders>\nRun Code Online (Sandbox Code Playgroud)\nb) 找到 appSettings 标签,添加属性 configBuilders="AzureKeyVault",然后添加一行,如下所示:
\n\n <appSettings configBuilders="AzureKeyVault">\n <add key="webpages:Version" value="3.0.0.0" />\n <add key="webpages:Enabled" value="false" />\n <add key="ClientValidationEnabled" value="true" />\n <add key="UnobtrusiveJavaScriptEnabled" value="true" />\n <add key="TextAnalyticsKey" value="from key vault" />\n </appSettings>\n\n <connectionStrings configBuilders="AzureKeyVault">\n <add name="DefaultConnection" connectionString="from key vault" providerName="System.Data.SqlClient" />\n <add key="StorageConnectionString" value="from key vault" />\n </connectionStrings>\nRun Code Online (Sandbox Code Playgroud)\nc) 编辑 HomeController.cs 中的 About 方法,以显示确认值。
\n public ActionResult About()\n {\n ViewBag.Message = "Key vault value = " + ConfigurationManager.AppSettings["TextAnalyticsKey"];\n }\nRun Code Online (Sandbox Code Playgroud)\n通过这种方式,如果您运行的应用程序使用 .NET Framework 4.7 或更高版本,则可以在经典 ASP.NET MVC 应用程序中连接和使用 Azure Key Vault。
\n您可以参考以下文档以获得相同的详细解释:
\n