0

Ich habe eine Website, die mehr defekte Links hat und ich hostet diese Website in azure Website durch die Aktivierung der AAD-Authentifizierung.Wie finde ich die defekten Links in der Azur-Website, die AAD-fähig ist?

Auch ich habe eine Konsole App mit unten Methode, um die Seiten gebrochen Links zu validieren.

Aufgrund AAD-Authentifizierung bekomme ich (401) nicht autorisiert, obwohl ich meine Anmeldeinformationen weitergeben.

Gibt es trotzdem können wir lösen diese (ohne Berücksichtigung des Vorzeichens-in-Option)

Danke, Saravanan

Antwort

0

Der Grund, warum Sie eine 401 Unauthorized Antwort, wenn es darum, weil Sie mit zu authentifizieren sind versucht, Ihre Webanwendung mit CredentialCache.DefaultNetworkCredentials. Dies funktioniert für Web-Apps, die in Ihrer Unternehmensdomäne gehostet werden, aber nicht für Web-Apps, die in Azure gehostet werden.

Wenn Sie eine AAD-protect-Webanwendung aufrufen möchten, müssen Sie the ADAL libraries verwenden, um ein Token zu erhalten und dieses Token an den Autorisierungsheader Ihrer HTTP-Anfrage anzuhängen.

Sie können Beispielcode und einige Anweisungen hier finden: https://github.com/Azure-Samples/active-directory-dotnet-native-headless. Stellen Sie sicher, dass Sie sich auf die clientseitigen Anweisungen konzentrieren, da Sie Ihre Webanwendung bereits mit AAD eingerichtet und konfiguriert haben.

+0

Hallo Chris, vielen Dank für Ihre schnelle Antwort, ich habe Ihren Ansatz versucht, es nur für WEB api und Web Service und seine nicht funktioniert für Web-Anwendung (asp.net, MVC), Könnten Sie mir bitte arbeitet vorschlagen jede andere Möglichkeit für die Weitergabe von AAD-Authentifizierung für Web-Anwendung (MVC, asp.net) – user3240560

+0

Es sollte für alle HTTP-Endpunkte, Web-App oder Web-API die gleiche funktionieren. Wenn Sie Probleme haben, schlage ich vor, Anwendungsprotokolle zu aktivieren, auf Informativ oder Ausführlich zu setzen, das Problem zu reproduzieren und in den Protokollen nachzusehen, um welches Problem es sich handelt. –

0

Vielen Dank für Ihre Eingabe, ich bin in der Lage, das Zugriffs-Token nach Änderung des Codes wie unten zu bekommen und jetzt kann ich auf die Cloud-Site-URLs zugreifen. Danke noch einmal.

do 
     { 
      retry = false; 
      try 
      { 
       //token = authContext.AcquireToken(todoListResourceId, clientCredential); 
       token = authContext.AcquireToken(resourceId, clientId, new Uri("https://mysitename.azurewebsites.net")); 
      } 
      catch (AdalException ex) 
      { 
       if (ex.ErrorCode == "temporarily_unavailable") 
       { 
        retry = true; 
        retryCount++; 
        Thread.Sleep(3000); 
       } 
      } 

     } while ((retry == true) && (retryCount < 3)); 
     return token; 
Verwandte Themen