Ich habe ein Problem mit crossdomain.xml, das sich auf Facebook-Fotoservern befindet. Das erste Problem tritt auf, wenn Silverlight nach clientaccesspolicy.xml fragt - Facebook-Server geben 403 - Zugriff verweigert zurück, was in Ordnung ist, da sie crossdomain.xml auf ihren Servern bereitgestellt haben. Silverlight fragt dann nach der crossdomain.xml und die Antwort ist genau das:
%Vor%Dann habe ich eine Weile damit gespielt, diese crossdomain.xml auf meinen eigenen Servern deployed und bekomme die gleichen Ergebnisse - eine Sicherheitsausnahme. Dann fing ich an, Dinge zu verschieben und kam zu der Schlussfolgerung, dass alles wie gewünscht funktioniert, wenn ich nur das Attribut to-ports="*" entferne. Hat jemand eine Idee wie man das überwinden kann, hat jemand schon einmal das gleiche Problem oder ist es etwas was ich falsch mache?
Ich bin auf dasselbe Problem gestoßen, als ich versucht habe, Bilder von Facebook programmatisch abzurufen. Der seltsame Teil ist, dass, wenn Sie ein Silverlight Bild-Steuerelement auf die Facebook-Bild-URL verweisen, das Bild abgerufen und ohne Fehler angezeigt wird. Das hat mich zum Nachdenken gebracht und ich habe mir eine praktikable Workaround-Lösung ausgedacht, die konsequent für meine Situation funktioniert. Ich hoffe, Sie finden es auch nützlich.
%Vor% Erstellen Sie ein BitmapImage
-Objekt, setzen Sie einen Event-Handler für das ImageOpened
-Ereignis und setzen Sie die CreateOptions
-Eigenschaft auf BitmapCreateOptions.None
. Setzen Sie schließlich UriSource
auf das Facebook-Bild, das Sie abrufen möchten. Das Bild wird sofort heruntergeladen, weil wir CreateOptions
auf None
setzen (der Standardwert ist DelayedCreation
). Sie können dann alle gewünschten Aktionen im ImageOpened
-Ereignishandler ausführen.
Ich wollte diese Logik in meine Serviceebene einbetten und die Fehlerbehandlung verbessern und so habe ich sie in eine Reactive Extensions Observable eingepackt, um sie einfacher zu verwenden. Hier ist mein letztes Code-Snippet:
%Vor%Und Verwendung:
%Vor%Ich hoffe, dass jemand da draußen das nützlich findet.
Dies ist immer noch nicht in Silverlight 5 gelöst. Facebook scheint auch nicht betroffen.
Tags und Links silverlight facebook cross-domain facebook-c#-sdk