ASP.Net die URL-Codierung

Ich bin Implementierung von URL-rewriting in ASP.net und meine URLs sind, was mir eine Welt von Problemen.

Die URL generiert aus einer Datenbank von Abteilungen & Kategorien. Ich möchte die Mitarbeiter in der Lage sein, um Elemente hinzuzufügen, um die Datenbank mit dem, was spezielle Zeichen, die geeignet sind, ohne es zu brechen der Website.

Ich bin der Codierung der Daten, bevor ich konstruiere die URLs.

Gibt es mehrere Probleme...

  1. IIS decodiert die URL, bevor es erreicht .net macht es unmöglich, richtig zu analysieren alles, was mit einem "/".
  2. ASP.net wird verwirrt durch die url machen "~" nutzlos innerhalb bestimmter Seiten
  3. Wanderte ich von der integrierten test-server auf meinem lokalen IIS-server (XP-Rechner) und jede URL, die mit einem codierten & (%26) gibt mir ein "Bad Request" - Fehler.
  4. UrlEncode lässt einige Bruch-Zeichen unberührt wie '.'

Ich habe noch zwei andere Veröffentlichungen zu diesem Thema, zu der Zeit sah ich nur die kleinen Probleme nicht das große problem upstream. Ich habe festgestellt, dass einige registry-tricks zu lösen, der "Bad Request" - Problem, aber ich werde die Bereitstellung auf einem shared-hosting-Umgebung zu machen, nutzlos. Ich weiß auch, dass dies ist ein fix für einige Sicherheits-Problem, also ich möchte nicht unbedingt umgehen, ohne zu wissen, was der Würmer, die ich bin-öffnung.

Anstatt zu versuchen zu zwingen .net, gib mir die raw-url, oder überschreiben Sie den IIS-Einstellungen, die ich möchte, um wirklich sichere URLs in den ersten Platz.

Werde ich beachten, ich habe versucht, AntiXss.URLEncode, HttpUtility.URLEncode, URI.EscapeDataString. Ich habe sogar versucht die dumme Sachen wie double URLEncodng. Gibt es ein Dienstprogramm, das macht, was ich brauche, oder muss ich wirklich die Rolle meiner eigenen. Ich bin auch in Erwägung ziehen etwas Hacky, wie das ersetzen der % mit einer ungewöhnlichen Zeichenfolge von Zeichen. Das Endergebnis sollte wenigstens lesbar, das war der Punkt, der Einsatz von URL-rewriting in den ersten Platz.

Sorry für den langen post - ich wollte nur sicherstellen, dass ich ' ve enthalten alle notwendigen details. Ich kann nicht scheinen, finden alle relevanten Informationen auf dieser, und es scheint, wie es wäre eine gemeinsame problem - also vielleicht bin ich etwas fehlt gross. Vielen Dank für Ihre Hilfe und Geduld, mit der Sie die lange Erklärung!


Bearbeiten für Klarheit:

Wenn ich sage, die urls sind gebaut aus einer Datenbank, was ich meine ist, dass die Verzeichnis-Struktur ist contstructed aus den Abteilungen und Kategorien in meiner Datenbank.

Einige Beispiel-URLS -

Mystore/Kälte/Bar+Kühlschrank.aspx
Mystore/Kochen+Geräte.aspx
Mystore/Küche/Schneiden+Boards.asxpx

Die Probleme kommen, wenn ich eine Abteilung wie "Getränke & Bar" oder "Konditor/Dekoration" zu konstruieren, meine URL. Trotz kodiert wird zuerst die Ursache der oben genannten Probleme.

Mein Handler sind bereits implementiert und funktioniert gut, außer für das Sonderzeichen-encoding-Probleme.

Im Interesse der vollständigen Offenlegung hier sind meine anderen verwandten Beiträge- stackoverflow.com/questions/1274669/... -- Ähnliche Frage, aber ich war versucht zu zwingen .net, geben Sie mir die original-URL, anstatt die Festsetzung der Codierung auf den original-link. stackoverflow.com/questions/1194900/... zu Versuchen, zu beheben die " ~ " - problem, bevor ich erkannte, dass es größere Probleme.

InformationsquelleAutor Kelly Gendron | 2009-08-17

Schreibe einen Kommentar