我尝试获取Dynamics 365令牌,但是获取令牌的方法是异步的,当我尝试返回令牌时,我收到500 Internal Server Error。还有另一种获取Dynamics 365令牌的方法吗?或者如何在控制器返回时显示令牌?
我的获取令牌方法:
public static async Task<string> AccessTokenGenerator()
{
string clientId = "myClientId";
string clientSecret = "myClientSecret";
string authority = "https://login.microsoftonline.com/9dfdf489-e992-46ea-9fc7-317dfc206add";
string resourceUrl = "https://devtreinamento.crm2.dynamics.com"; // Org URL
ClientCredential credentials = new ClientCredential(clientId, clientSecret);
var authContext = new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(authority);
var result = await authContext.AcquireTokenAsync(resourceUrl, credentials);
return result.AccessToken;
}
我的显示令牌方法:
[Route ("")]
[HttpGet]
public ActionResult showToken()
{
var token = getToken.AccessTokenGenerator();
return Ok(token);
}
答案 0 :(得分:0)
将您的“获取”方法更改为async
并返回类型T Task<T>
的{{1}},然后ActionResult
调用await
代码中,您正在设置等于AccessTokenGenerator()
方法的变量,而无需等待async
方法完成。:
async