我需要来自我的订阅ID和身份验证令牌的Azure存储列表。 我做的代码按基准-`如何通过c#获取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);'to'var result = context.AcquireTokenAsync(“https:// management.core.windows.net/“,cc);'。 –
@GauravMantri我按照你的建议绑定,但它在认证中给出错误 - 在mscorlib.dll中发生类型'System.AggregateException'的异常,但未在用户代码中处理 – Shirish