如何获得Dynamics 365令牌?

时间:2020-09-16 15:46:16

标签: c# asp.net-core dynamics-365

我尝试获取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);
    }

1 个答案:

答案 0 :(得分:0)

将您的“获取”方法更改为async并返回类型T Task<T>的{​​{1}},然后ActionResult调用await代码中,您正在设置等于AccessTokenGenerator()方法的变量,而无需等待async方法完成。:

async