You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET代码中直接传入凭证信息使用DefaultAzureCredentials?

在.NET代码中直接传入租户ID、客户端ID和客户端密钥实现认证

你现在写的DefaultAzureCredentialOptions只是排除了交互式认证方式,但还没指定客户端ID和密钥的传入逻辑。要在代码里直接传入这三个参数实现认证,有两种实用方案:

方案一:直接使用ClientSecretCredential

既然你已经排除了所有交互式凭证,直接用客户端密钥认证是最简洁的方式,完全不需要依赖环境变量:

using Azure.Identity;

// 替换成你的实际参数
string tenantId = "xxxxxxxxxxxxxxxxx";
string clientId = "你的客户端ID";
string clientSecret = "你的客户端密钥";

// 创建凭证实例
var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

// 示例:用这个凭证初始化Azure服务客户端(比如Blob存储)
// var blobServiceClient = new BlobServiceClient(new Uri("https://yourstorageaccount.blob.core.windows.net"), credential);

方案二:基于DefaultAzureCredential自定义凭证链

如果后续可能需要扩展其他认证方式,也可以把ClientSecretCredential加入DefaultAzureCredential的凭证链中,保留其自动 fallback 的特性:

using Azure.Identity;

string tenantId = "xxxxxxxxxxxxxxxxx";
string clientId = "你的客户端ID";
string clientSecret = "你的客户端密钥";

// 先创建ClientSecretCredential实例
var clientSecretCredential = new ClientSecretCredential(tenantId, clientId, clientSecret);

// 配置DefaultAzureCredential,排除所有默认凭证类型
var options = new DefaultAzureCredentialOptions
{
    TenantId = tenantId,
    ExcludeInteractiveBrowserCredential = true,
    ExcludeVisualStudioCredential = true,
    ExcludeAzurePowerShellCredential = true,
    ExcludeSharedTokenCacheCredential = true,
    ExcludeVisualStudioCodeCredential = true,
    ExcludeEnvironmentCredential = true,
    ExcludeManagedIdentityCredential = true
};

// 组合成自定义的DefaultAzureCredential
var credential = new DefaultAzureCredential(options, clientSecretCredential);

注意:硬编码密钥到代码里存在安全风险,实际项目中建议从安全配置源(比如Azure Key Vault、本地加密配置文件)读取这些敏感信息。

内容的提问来源于stack exchange,提问作者JakeUT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:48:15