Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#控制台应用程序身份验证会话_C#_Azure_Azure Cli2_Az - Fatal编程技术网

C#控制台应用程序身份验证会话

C#控制台应用程序身份验证会话,c#,azure,azure-cli2,az,C#,Azure,Azure Cli2,Az,有人如何在C#Console应用程序中实现az登录(Azure CLI)体验 在这种情况下,将打开一个浏览器窗口,用户进行身份验证,然后可以访问私有资源。 我的猜测是,身份验证令牌存储在某个地方,但在哪里?会话变量,文件 更新 我发现有一个文件夹~/.azure存储相关信息。因此,问题更多地出现在第一部分(启动浏览器并获取生成的令牌) 如何在C#控制台应用程序中实现az登录(Azure CLI)体验 1.使用Process.Start(@)启动浏览器http://url");。用户输入其凭证后,

有人如何在C#Console应用程序中实现
az登录
(Azure CLI)体验

在这种情况下,将打开一个浏览器窗口,用户进行身份验证,然后可以访问私有资源。 我的猜测是,身份验证令牌存储在某个地方,但在哪里?会话变量,文件

更新

我发现有一个文件夹
~/.azure
存储相关信息。因此,问题更多地出现在第一部分(启动浏览器并获取生成的令牌)

如何在C#控制台应用程序中实现az登录(Azure CLI)体验

1.使用
Process.Start(@)启动浏览器http://url");。用户输入其凭证后,您将获得授权代码。复制它

2.获取授权码

3.获取具有以下代码的访问令牌:

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Add("ContentType", "application/json");
    var requestURl = new Uri($"https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxxx/oauth2/v2.0/token");
    string body = "{\"client_id\": \"3c35ed0b-a441-4c57-9d1c-3a3b0392d9c3\",\"code\":\"the_code_you_copy_in_the_second_step\",\"redirect_uri\": \"https://localhost\",\"grant_type\": \"authorization_code\",\"client_secret\": \"xxxxxxxxxxxxxx\",\"scope\": \"user.read\"}";
    var stringContent = new StringContent(body, Encoding.UTF8, "application/json");
    var response = client.PostAsync(requestURl, stringContent).Result;
}
4.结果:


有关如何获取
授权码
访问令牌
的更多详细信息,请参阅此。

az
是否意味着
azure
?如果是这样,请使用后者并将前者标记为同义词Thank you@Joey,但我希望整个操作在CLI中实现自动化。如何从步骤1中获取值?如果您希望在输入用户凭据后直接获取访问令牌,可以使用。