Ich versuche, einige MSFT Power BI SDK-Beispiele zu arbeiten. Leider bereitet mir die Microsoft.IdentityModel.Clients.ActiveDirectory-Bibliothek mit dem anfänglichen externen Authentifizierungsschritt viel Mühe.NullReferenceException in Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireToken
Ich verwende Microsoft.IdentityModel.Clients.ActiveDirectory, Version = 2.28.3.860, von NuGet; Dies ist die letzte Version der Bibliothek, bevor AcquireToken entfernt wurde, und ich habe nicht herausgefunden, wie ich die Ersetzung (AcquireTokenAsync) in einer Weise verwenden kann, die der in den Beispielen gezeigten entspricht.
Wenn ich den folgenden Code nehme und die TODO-Zeilen ändere, um meine tatsächliche Azure-Client-ID und Authentifizierungsumleitungsseite anzugeben, komme ich bis zur AcquireToken-Zeile.
using System;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
public class Application
{
public static void Main(string[] args)
{
try
{
string clientID = "abcdef01-1234-1234-abcd-abcdabcd1234"; // TODO: actual Azure client ID
string redirectUri = "https://acmecorporation.okta.com/login/do-login"; // TODO: actual redirect
string resourceUri = "https://analysis.windows.net/powerbi/api";
string authorityUri = "https://login.windows.net/common/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authorityUri);
AuthenticationResult ar = authContext.AcquireToken(
resourceUri,
clientID,
new Uri(redirectUri),
PromptBehavior.RefreshSession);
string token = ar.AccessToken;
Console.WriteLine("Success: " + token);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
An dieser Stelle:
- A "Melden Sie sich zu Ihrem Konto in" Fenster mit dem Namen der App erscheint ich in Azure mit dem clientID GUID
- Ich bin zugeordnet haben
die AcquireToken Methode führt die folgende NullReferenceExpection umgeleitet zu meiner Organisation („acmecorporation“) anmelden auf Seite
- I meine AD-Anmeldeinformationen melden Sie sich mit:
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask[T](Task`1 task)
at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireToken(String resource, String clientId, Uri redirectUri, PromptBehavior promptBehavior)
at PowerBISample.Application.Main(String[] args) in \\noxfile\users\ehirst\documents\visual studio 2015\Projects\PowerBISample\PowerBISample\Program.cs:line 18
Kann jemand Hinweise geben, wie diese Vergangenheit zu bekommen? Mein Ziel ist es, mit einem POC zu ermitteln, ob wir Power BI in eine größere Anwendung integrieren können, aber bisher habe ich das Gefühl, dass ich ein ziemlich instabiles System testen werde.
Sie einen Fehler mit voller Stacktrace bei https://github.com/AzureAD/azure-activedirectory-library-for-dotnet Datei sollte –
Mögliche Duplikat [Was für eine Nullreferenceexception ist, und wie kann ich es beheben ?] (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-fix-it) –
Danke @ KanishkPanwar-MSFT. Ja; Ich bin neu in Power BI und ADAL. Zu wissen, dass das Problem im ADAL-Quellcode liegt, sollte ausreichen, um weiter zu gehen. –