Frage

Gibt es eine zuverlässige Art und Weise zu bestimmen, wo ein Benutzer in einer ASP.NET-Anwendung kommt? Wir haben eine Web-Anwendung, die von zwei verschiedenen Standorten verbunden ist. Die beiden Links sind auf separaten Domänen und sie benötigen, um bestimmte Benutzerrechte innerhalb dieser App zu diktieren. Hier ist, was ich bisher versucht ...

  • Mit Request.UrlReferrer (das ist der Referer HTTP-Header). Dies ergab immer einen leeren String. Ich glaube, das liegt daran, dass die Hyperlinks Javascript verwenden, um ein Popup-Fenster zu starten. Auf der Grundlage meiner Forschung stellt der User-Agent diese HTTP-Header auf Standard-Hyperlinks. JavaScript-Popups sind eine andere Geschichte (offenbar).

  • Ein einfacher Abfrage-String den Referrer anzuzeigen. Dies ist nicht wirklich eine Option, weil wir brauchen etwas, das nicht so leicht zu umgehen ist (sicherer).

Irgendwelche Ideen? Ich verstehe, dass in dem großen Plan der Dinge, das eine besseres Gesamt Design / Struktur haben könnte. Bitte senden Sie keine Antwort darauf hindeutet ich alles neu zu gestalten, denn das ist keine Option.

War es hilfreich?

Lösung

Es gibt keine eine zuverlässige Art und Weise zu sagen, wo ein Benutzer herkommt, und dies ist nicht nur eine ASP.NET-Beschränkung, aber alle Web-Anwendungen im Allgemeinen. Die URL Referrer können leicht gefälscht werden, damit es nicht zuverlässig ist. Ich denke, die beste Option könnte einige verschlüsselten URL-Parameter oder Cookie, wenn Sie es vorziehen.

So beide Seiten sollten auf gemeinsamen privaten Schlüssel zustimmen.

  1. Seite1 den Schlüssel verwenden, um seine Adresse zu verschlüsseln und an Page2 geben
  2. Seite 2 wird auf das Vorhandensein dieses Parameters überprüfen und versuchen Sie es verwendet, um mit dem gleichen privaten Schlüssel zu entschlüsseln, verschlüsseln
  3. Wenn dies gelingt es bedeutet, dass Page2 Lage sein wird, zu bestimmen, wer es genannt, wenn nicht, die Daten manipuliert worden

Andere Tipps

Ohne den Browser einen Referrer geben oder mit dem Abfragezeichenfolgeflag wie Sie beschreiben, gibt es keine Möglichkeit zu wissen.

Eine andere Möglichkeit ist, zwei verschiedene Zielseiten auf der ASP.NET-Anwendung zu haben. Die Zielseiten können die Sicherheitsoptionen und dann auf eine gemeinsame Homepage umleiten. Dies ist ein wenig sicherer als die Abfragezeichenfolgeflag Option.

Oder könnten Sie ein 1x1-Pixel-Bild auf der verweisenden Webseiten platzieren, die von ASP.NET-Anwendung Seite gezogen wird. Der Referrer sollte an das Skript übergeben werden und Sie könnten dann einen Cookie auf der Benutzer-Maschine gesetzt, die Sie dann verweisen können, wenn sie die App Homepage getroffen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top