【发布时间】:2017-05-12 12:34:22
【问题描述】:
我需要来自我的订阅 ID 和身份验证令牌的 Azure 存储列表。 我正在按照参考编写代码-`
https://msdn.microsoft.com/en-us/library/azure/ee460787.aspx?f=255&MSPPError=-2147217396
但我无法获取该数据,因此我只能获取代码401 Unauthorized access
我已经尝试过 c# 中的代码,如下所示 -
获取授权令牌 -
private static string GetAuthorizationToken()
{
ClientCredential cc = new ClientCredential(ClientId, ServicePrincipalPassword);
var context = new AuthenticationContext("https://login.windows.net/" + AzureTenantId);
var result = context.AcquireTokenAsync("https://management.azure.com/", cc);
if (result == null)
{
throw new InvalidOperationException("Failed to obtain the JWT token");
}
return result.Result.AccessToken;
}
然后
AuthToken = GetAuthorizationToken();
TokenCredentials = new TokenCredentials(AuthToken);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://management.core.windows.net/<My Subscription ID>/services/storageservices");
request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + AuthToken);
request.ContentType = "application/json";
request.Method = "GET";
//request.Headers["Authorization"] = "Bearer " + AuthToken; // Also tried this
request.Headers["x-ms-version"] = "2016-05-31";//
//https://management.core.windows.net/<subscription-id>/services/storageservices
//header - "x-ms-version"
HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
//ex.Message;
}
请建议任何从订阅 ID 和身份验证令牌获取存储帐户列表的解决方案。如果您有其他更好的解决方案来获取存储列表,那么也请提出建议。
【问题讨论】:
-
请尝试将以下代码行
var result = context.AcquireTokenAsync("https://management.azure.com/", cc);更改为var result = context.AcquireTokenAsync("https://management.core.windows.net/", cc);。 -
@GauravMantri 我已按照您的建议绑定,但在该身份验证中出现错误 - mscorlib.dll 中出现“System.AggregateException”类型的异常,但未在用户代码中处理
标签: c# asp.net azure azure-storage azure-blob-storage