AAD AquireTokenAsync错误406

时间:2018-06-11 11:10:51

标签: c# asp.net azure-active-directory powerbi-embedded

我正在学习如何将PowerBI仪表板集成到ASP.NET应用程序中,当我尝试对AAD进行身份验证时,我在堆栈跟踪中收到以下错误。

[AdalException: : Unknown error]

[HttpRequestException: Response status code does not indicate success: 406 (NotAcceptable).]

代码是(从web.config中的AppSettings读取用户名和密码):

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        RegisterAsyncTask(new PageAsyncTask(GetToken));
    }
}

private async Task<AuthenticationResult> GetToken()
{

    UserPasswordCredential credential;
    AuthenticationResult authenticationResult;
    string AuthorityUrl = "https://login.windows.net/common/oauth2/authorize/";
    string resourceUrl = "https://analysis.windows.net/powerbi/api";

    var authenticationContext = new AuthenticationContext(AuthorityUrl);            
    credential = new UserPasswordCredential(Username, Password);

    authenticationResult = await authenticationContext.AcquireTokenAsync(resourceUrl, ClientId, credential);
    return authenticationResult;                    

}  

任何帮助都会受到赞赏(这是我对API和AAD的第一次体验,所以要温和一点。)

1 个答案:

答案 0 :(得分:0)

在大多数情况下,这表示用于访问Power BI服务的AAD应用程序配置错误。 Here您可以找到有关如何注册应用程序的详细说明,here是一个很好的视频,可以解释更多内容。您必须记住,用户需要是AAD用户,其电子邮件很可能以 .onmicrosoft.com outlook.com 等类似的邮件地址结束允许的,