2016-07-08 4 views
0

Ich habe Probleme beim Laden von Daten von einem authentifizierten Azure-Webdienst. Ich habe Adal/Adal-Angular konfiguriert, um mit der Authentifizierung zu arbeiten. Ich kann mich anmelden, mich als Benutzer abmelden, auf Seiten zugreifen, wenn sie autorisiert sind usw.Befüllen Sie nr-src mit einer umgeleiteten (authentifizierten) URL

Das Problem, mit dem ich konfrontiert bin, ist das Laden eines ng-src in ein IMG-Tag. Ich erhalte die tatsächliche URL von einem REST-Service. Wenn ich es in mein ng-src-Tag lade, wird das Bild nicht angezeigt. Wenn ich die URL in die Adressleiste meines Browsers lade, kann ich sehen, wie die URL zum Authentifizierungsportal umgeleitet wird und dann zurück zum eigentlichen Bild geleitet wird. Nachdem die Weiterleitung abgeschlossen ist, kann ich das Bild aus meiner Sicht perfekt laden.

Die Bild-URL scheint diese Umleitung zu benötigen, um herauszufinden, ob der Benutzer berechtigt ist, diese URL anzuzeigen. Meine Problemumgehung würde ein Iframe auf der Seite sein, in dem ich den Browser die Authentifizierung auflösen lassen, und dann das ng-src-Tag neu laden. Ich würde vermuten, dass es eine bessere, konformere Möglichkeit geben muss, die Authentifizierung für Bild-URLs (von anderen eingebetteten Inhalten) zu lösen. Wenn jemand einen besseren Vorschlag hat, würde ich es gerne hören!

+0

Ist die tatsächliche URL des Bildes aus dem REST-Dienst in dem Web-Apps von AAD authentifizierte? –

+0

Yeah, habe ein bisschen searchsearching gemacht. Das Problem, mit dem ich konfrontiert war, war, dass der Inhalt über den $ http-Interceptor geladen wurde, die Image-URL über ng-src nicht. Stellt sich heraus, dass es in der Tat nicht $ http Interceptor verwendet. Mein Problem wurde mit akzeptierter Antwort von dieser verwandten Frage gelöst: http://stackoverflow.com/questions/20997406/force-http-interceptor-in-dynamic-ngsrc-request – Joran

Antwort

0

Also stellte sich heraus, das Problem war, dass ng-src nicht den $ http Interceptor beim Laden einer Quelle verwendet. Das hat mich in diese Richtung suchen lassen und die akzeptierte Antwort von dieser verwandten Frage funktioniert, soweit ich es im Moment sagen kann.

Force HTTP interceptor in dynamic ngSrc request