2010-11-26 3 views
1

ich DotNetOpenAuth verwenden, ich brauche einige Daten mit SetCallbackArgument passieren, aber das Problem ist, dass einige OpenID-Provider wie http://pip.verisignlabs.com/ http://clickpass.com/public/username auf meine Website mit Query-String-Umleitung mehr als 2048 Charakter und IIS können nicht damit umgehen. Ich habe 404 - Datei oder Verzeichnis nicht gefunden. Fehler Ursache, dass sie umleiten zu groß ist. Was soll ich in diesem Fall tun?OpenId Abfrage Länge Problem in DotNetOpenAuth?

Antwort

0

Die OpenID-Spezifikation besagt, dass OpenID-Antworten, die zu groß sind, Formular-POST statt 301-Weiterleitungen verwenden sollten, um dieses Problem zu vermeiden. Ich weiß nicht, ob Verisign oder Clickpass diesen Teil der Spezifikation vernachlässigt oder nicht. Aber im Allgemeinen sollten Ihre Callback-Argumente kurz gehalten werden, um diese Art von Problem zu vermeiden. Und sicher, wenn Ihr Callback-Argument sehr groß ist, könnte es nie da Argumente des Rückrufs arbeiten zu erwarten immer in dem Query-String sein muss.

Wenn Sie bei der Rückkehr des Benutzers ein großes Datenpaket zur Verfügung haben möchten, können Sie es in einer db, in der Benutzersitzung oder in einem Cookie speichern und nur einen kleinen Verweis auf diese Daten im Callback-Argument speichern .

, dass irgendetwas in dem Callback-Argumente Denken Sie daran, Inspektion durch den Benutzer ausgesetzt ist, wird eine dritte Partei, wenn HTTPS nicht für die ganze Sache, und sogar möglich, verwendet Manipulation. DNOA bietet optionalen Manipulationsschutz für Callback-Argumente, jedoch keine Vertraulichkeit.