如何获得 Dynamics 365 令牌?

How to get Dynamics 365 Token?

我试图获取 Dynamics 365 令牌,但获取令牌的方法是异步的,当我尝试 return 令牌时,我收到了 500 内部服务器错误。还有另一种获取 Dynamics 365 令牌的方法吗?或者如何在控制器的 return 上显示令牌?

我的获取令牌方法:

 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;
    }

我的show token方法:

[Route ("")]
    [HttpGet]
    public  ActionResult showToken()
    {
        var token = getToken.AccessTokenGenerator();

        return Ok(token);
    }

将您的“获取”方法更改为 async 和 return 类型为 T ActionResultTask<T>,然后 await 您对 [=15 的调用=],在您当前的代码中,您正在设置一个等于 async 方法的变量,而不等待 async 方法完成。:

[Route ("")]
[HttpGet]
public async Task<ActionResult> showToken()
{
    var token = await getToken.AccessTokenGenerator();
    return Ok(token);
}