Ich versuche, die verschlüsselte ID in der URL zu verschlüsseln. Wie folgt aus: http://www.calemadr.com/Membership/Welcome/9xCnCLIwzxzBuPEjqJFxC6XJdAZqQsIDqNrRUJoW6229IIeeL4eXl5n1cnYapg+NVerschlüsseln einer ID in einer URL in ASP.NET MVC
jedoch entweder kodieren nicht richtig und ich Schrägstriche ‚/‘ in der Verschlüsselung oder ich erhalten und Fehler von IIS: Das Anforderungsfilterungsmodul ist konfiguriert, um eine Anfrage zu verweigern, die enthält eine doppelte Escape-Sequenz.
ich verschiedene Kodierungen versucht haben, die jeweils nicht:
- HttpUtility.HtmlEncode
- HttpUtility.UrlEncode
- HttpUtility.UrlPathEncode
- HttpUtility.UrlEncodeUnicode
-Update
Das Problem war ich, als ich eine Guid verschlüsselt und konvertiert es in eine Base64-Zeichenfolge würde es unsichere URL-Zeichen enthalten. Natürlich, wenn ich versuchte, zu einer URL mit unsicheren Zeichen zu navigieren, würde IIS (7.5/Windows 7) explodieren. Url Die Codierung der verschlüsselten base64-Zeichenfolge würde in IIS zu Fehlern führen und Fehler verursachen. (Das Anforderungsfiltermodul ist so konfiguriert, dass eine Anforderung abgelehnt wird, die eine doppelte Escape-Sequenz enthält.). Ich bin mir nicht sicher, wie es doppelt codierte Strings erkennt, aber es hat es getan.
Nach dem Versuch, die oben genannten Methoden zum Verschlüsseln der Base64 verschlüsselten Zeichenfolge. Ich beschloss, die base64-Codierung zu entfernen. Dies lässt jedoch den verschlüsselten Text als ein Byte []. Ich versuchte UrlEncoding das Byte [], es ist eine der Überladungen hängen von der Methode httpUtility.Encode. Auch wenn es URL-codiert war, mochte IIS es nicht und lieferte eine "Seite nicht gefunden."
Nach dem Graben im Netz stieß ich auf eine HexEncoding/Decoding Klasse. Das Anwenden der Hexadezimalkodierung auf die verschlüsselten Bytes hat den Zweck erfüllt. Die Ausgabe ist url sicher. Auf der anderen Seite hatte ich keine Probleme mit der Entschlüsselung und Entschlüsselung der Hex-Strings.
Ihr Update ist viel besser als die Antwort. Wenn Sie Base64-codierte URLs verwenden möchten, die sicher sind, lesen Sie Folgendes: http://stackoverflow.com/a/10858198/237858 – kape123