要在 ASP.NET Framework 4.7.1 WebForms 应用程序中实现 Microsoft 的 Azure KeyVault,首先需要创建一个 Azure Key Vault。
- 您需要提供一个资源组、唯一名称和位置,然后
单击“查看+创建”。
- 可以参考创建Azure keyvault的步骤
这里>>(https://learn.microsoft.com/en-us/azure/key-vault/quick-create-portal https://learn.microsoft.com/en-us/azure/key-vault/quick-create-portal)
- 接下来选择 Secrets 边栏选项卡并添加您的应用程序设置和
可以在 web.config 文件中访问的连接字符串。你可以
单击生成/导入按钮并选择上传选项
手动的。然后配置您的应用程序设置和连接字符串 -
名称和值选项的键和值。并保留其他选项
作为默认值。
ASP.NET 中的配置生成器提供了一种修改和/或覆盖来自配置文件 (Web.config
在 ASP.NET 的情况下)通过使用不同的源(环境
变量、Key Vault 等)。
连接到 Azure 密钥保管库:
-
To connect to Azure Key Vault from Visual Studio, you need to right
click on the project and select Add > Connected Service menu.
-
从选项中,选择“使用 Azure Key Vault 保护机密”选项。
-
Now you may need to sign in if not already signed in to your account
and then select rquired key vault from the list.
-
然后单击“添加”按钮将密钥保管库引用添加到您的
应用。这将添加 NuGet 包的引用
Microsoft.Configuration.ConfigurationBuilders.Azure 到项目。
它还会在 Web.Config 文件中添加一些配置。
(OR)
- 在“解决方案资源管理器”中,右键单击您的项目,然后选择“管理”
NuGet 包。在“浏览”选项卡中,找到并安装
Microsoft.Configuration.ConfigurationBuilders.Azure
打开你的网络配置文件,并写入以下代码:
a) 使用您的 keyvault 名称添加 configSections 和 configBuilders,如下所示
<configSections>
<section
name="configBuilders"
type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
restartOnExternalChanges="false"
requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add
name="AzureKeyVault"
vaultName="vaultname"
type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Azure, Version=1.0.0.0, Culture=neutral"
vaultUri="https://vaultname.vault.azure.net" />
</builders>
</configBuilders>
b) 找到 appSettings 标签,添加属性 configBuilders="AzureKeyVault",然后添加一行,如下所示:
<appSettings configBuilders="AzureKeyVault">
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="TextAnalyticsKey" value="from key vault" />
</appSettings>
<connectionStrings configBuilders="AzureKeyVault">
<add name="DefaultConnection" connectionString="from key vault" providerName="System.Data.SqlClient" />
<add key="StorageConnectionString" value="from key vault" />
</connectionStrings>
c) 编辑 HomeController.cs 中的 About 方法,以显示确认值。
public ActionResult About()
{
ViewBag.Message = "Key vault value = " + ConfigurationManager.AppSettings["TextAnalyticsKey"];
}
通过这种方式,如果您运行的应用程序使用 .NET Framework 4.7 或更高版本,则可以在经典 ASP.NET MVC 应用程序中连接和使用 Azure Key Vault。
您可以参考以下文档以获得相同的详细解释:
- https://learn.microsoft.com/en-us/azure/key-vault/general/vs-key-vault-add-connected-service#added-references-for-aspnet-framework https://learn.microsoft.com/en-us/azure/key-vault/general/vs-key-vault-add-connected-service#added-references-for-aspnet-framework
-
https://dotnetthoughts.net/azure-key-vault-in-aspnet-mvc/ https://dotnetthoughts.net/azure-key-vault-in-aspnet-mvc/帮助您如何在 ASP.NET MVC 应用程序中连接和使用 Azure Key Vault。