var authContext = new AuthenticationContext(Constants.AUTHORITY);
var credential =
new ClientCredential(Constants.CLIENT_ID, Constants.CLIENT_SECRET);
var result = (AuthenticationResult)authContext
.AcquireTokenAsync(Constants.API_ID_URL, credential)
.Result;
var token = result.AccessToken;
return token;
使用上面的代码获取不记名 token ,我得到了错误/不完整的不记名 token 。然后添加到客户端 header 中。
client.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue("Bearer", token);
HttpResponseMessage res = client.GetAsync(urlParameters).Result;
response is unauthorized.
最佳答案
token 正确。你的代码看起来也不错。我想到两个可能的原因:
- 仔细检查您使用的身份是否确实有权访问您尝试访问的服务。
- 确保您正确调用 API。服务/端点有不同的要求。如果您的调用不正确,您可能会得到类似的信息,假设您在需要时没有提供 API 版本。
如果您提供您收到的完整回复正文以及您提出的完整请求,将会有所帮助。您可以混淆个人数据。
关于azure - 我似乎从 azure ad 获取了错误的不记名 token ,APM API 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54861240/