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

如何使用C#通过用户名密码登录Azure并设置订阅?

使用C#实现Azure账号登录与订阅切换(替代PowerShell脚本)

要替代你那套PowerShell的Azure登录和订阅设置操作,用C#可以借助Azure官方SDK实现更原生的集成化操作,具体步骤如下:

1. 安装必要的NuGet包

需要用到两个核心SDK包:

  • Azure.Identity:负责处理Azure身份验证逻辑
  • Azure.ResourceManager:用于管理Azure订阅及资源

用dotnet CLI安装的话,执行以下命令:

dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager

2. 完整C#代码实现

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using System.Linq;

// 替换为你的实际账号和订阅信息
string username = "<uname>";
string password = "<pwd>";
string targetSubscriptionName = "MyTestSubscription";

// 1. 通过用户名密码完成Azure登录
var credential = new UsernamePasswordCredential(username, password);

// 2. 创建ARM客户端,作为后续Azure操作的入口
var armClient = new ArmClient(credential);

// 3. 查找目标订阅并设置为默认
var subscriptions = armClient.GetSubscriptions();
var targetSubscription = subscriptions.FirstOrDefault(sub => sub.Data.DisplayName == targetSubscriptionName);

if (targetSubscription != null)
{
    armClient.SetDefaultSubscription(targetSubscription.Data.SubscriptionId);
    Console.WriteLine($"已成功切换到订阅: {targetSubscriptionName}");
}
else
{
    Console.WriteLine($"未找到指定订阅: {targetSubscriptionName}");
}

注意事项

  • 这种用户名密码登录方式不支持启用了MFA(多因素认证)的账号,如果你的账号开启了MFA,建议改用InteractiveBrowserCredential(交互式登录)或ClientSecretCredential(服务主体登录)
  • 确保你的账号拥有目标订阅的访问权限(至少需要订阅级别的读取权限)
  • 若知道订阅ID,直接通过ID查找会比名称更高效准确,可替换为:
    string subscriptionId = "你的订阅ID";
    var targetSubscription = await armClient.GetSubscriptionResource(new ResourceIdentifier($"/subscriptions/{subscriptionId}")).GetAsync();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:45:56