Azure托管Asp.NET Forms应用:ConnectionStrings.Config如何引用Key Vault值?
解决方案:在ASP.NET Forms应用的connectionStrings.config中引用Azure Key Vault值
一、直接引用Azure Key Vault值
可以直接在connectionStrings.config中使用Azure官方的Key Vault引用语法,无需额外代码修改。具体格式有两种:
- 直接指定密钥的完整URI:
@Microsoft.KeyVault(SecretUri=密钥的完整URI) - 通过密钥库名称和密钥名称指定:
@Microsoft.KeyVault(VaultName=你的密钥库名称;SecretName=密钥名称)
修改后的示例配置如下:
<add name="cloud.search" connectionString="serviceUrl=https://someurl.com;apiVersion=2017-11-11;apiKey=@Microsoft.KeyVault(SecretUri=https://your-vault.vault.azure.net/secrets/your-search-api-key)"/>
前提条件
- Web应用需启用系统分配或用户分配的托管标识
- 该托管标识需拥有Key Vault的
Secrets User权限(或至少能读取目标密钥的权限) - 在Azure门户的应用服务配置页面,开启“Key Vault引用”功能
二、通过Azure应用配置中转引用
如果已经在Azure应用配置中创建了指向Key Vault的引用项(即配置项的值是Key Vault引用,已完成拉取),可以直接在connectionStrings.config中引用该应用配置项:
假设应用配置中的键名为SearchApiKey,修改后的配置示例:
<add name="cloud.search" connectionString="serviceUrl=https://someurl.com;apiVersion=2017-11-11;apiKey=@Microsoft.AppConfiguration(Endpoint=https://your-app-config.azconfig.io;Key=SearchApiKey)"/>
额外说明
- 需确保ASP.NET Forms应用使用的是**.NET Framework 4.7.1及以上版本**,此版本开始原生支持Azure配置引用的解析
- Sitecore对Azure Cognitive Search的集成仅依赖最终解析后的合法连接字符串,上述两种引用方式都不会影响Sitecore的正常使用
内容的提问来源于stack exchange,提问作者T H
相关产品推荐
相关产品推荐

