Wie funktioniert MS-Word öffnen, einem hyperlink?
Habe ich eine MS-Word-Dokument mit einem hyperlink. Der hyperlink verweist auf eine Authentifizierung, redirector auf meinem server. Wenn ich control-klicken Sie auf den hyperlink, meine server-logs, die es
- macht einen fetch mit dem IE, dann
- holt die redirect-url mit dem IE, dann
- startet die "Standard-browser", das ist Firefox in meinem Fall, und wieder-holt die zweite (redirect) URL.
Was gibt? Ist das so gewollt?
Ich bemerkte dies, weil mein auth system ist derzeit abhängig von cookies, die von dem redirector. Ich habe einige Ideen über die Verwendung von url-basierte auth für dieses bit, aber ich muss wissen, was ist motivierend Wort das Verhalten der ersten.
Ich habe einige Vermutungen, aber ich bin auf der Suche nach etwas, das autoritative (oder zumindest besser informiert und Schätze).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider, ja. Und Sie versuchen, die Schuld auf "eine Einschränkung des single-sign-on-system verwendet von web-server"...
http://support.microsoft.com/kb/899927
Eigentlich ist dies ein "feature". Wenn der hyperlink in ein Word-Dokument, word versucht das Dokument herunterzuladen und zu öffnen. (Sie müssen denken, es ist IE, weil der user-agent, aber die Anfrage kommt von WinInet in den Word-Prozess.)
Das Durcheinander kommt zustande, wenn der server nicht antwortet, wird eine Seite angezeigt, sondern antwortet mit einer Weiterleitung und cookies. Wort folgt der Umleitung, um zu sehen, ob es sich um ein Word-Dokument, und es eventally endet mit einer HTML-Seite. Es entscheidet dann, dass Firefox angezeigt werden soll, damit es startet Firefox mit der finalen Weiterleitung der URL (aber ohne die cookies, die der server gesendet).
Firefox bis Ende Mai benötigen diese cookies, wenn Sie das SSO-sign-on.
Späte Ergänzung:
Aufgefallen, das gleiche problem. Hier mit MVC 4 es verursacht den Verlust der querystring-Informationen.
Word startet den browser erst, nachdem es erhält einen Http-200-status.
Also habe ich dies vermieden, indem die Prüfung in der Steuerung, ob die Anfrage kommt von IE7 (die wahrscheinlich nur MS-Word) und die Rückgabe einer 200 manuell.
Dann die 'echten' browser wird erneut zu senden der http-Anforderung, und all ' s well ends well, da von dort aus die Anforderung normal verarbeitet und alle Informationen erhalten, die in der Sitzung mit den 'echten' browser.
Bisschen ein workaround, aber hey, es funktioniert. Und es ist nur für eine kleine Menge von Anfragen (in unserem Fall).