Mithilfe des Url-Rewrite-Moduls möchte ich eine Umschreibung basierend auf einem Wert ausführen, der während eines benutzerdefinierten Authentifizierungsprozesses abgerufen wurde.URL Rewrite-Umleitung basierend auf PostAuthenticate-Ergebnissen
Während der PostAuthenticateRequest versuche ich den HTTP-Header mit HttpContext.Current.Request.Headers.Add("name", "value");
zu setzen, die auf dem Anfrageobjekt sichtbar ist, bevor es das HTTPModule verlässt.
Jedoch in der URL-Rewrite, eine sehr grundlegende Bedingung fehlschlägt, da es keinen Text unter dem HTTP_name gibt.
<rule name="customrule" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_name}" pattern=".+" /> <!-- doesn't work -->
<!-- <add input="{HTTP_name}" pattern=".*" /> works -->
</conditions>
<action type="Rewrite" url="https://someotherdomain/{R:0}" />
</rule>
Ändern des Musters auf der Bedingung. * Lässt die Regel Pass aber die URL kommt als https:///{R:0}
. Wenn ich manuell den name
Header vor anschließe, der die Ressource vom Server anfordert, kann er Daten finden. Leider habe ich die Daten nicht auf dem bis eine Anfrage gestellt wurde.
Kann ich Header über die IIS-Module hinweg verwenden? Wie kann ich den Wert vom PostAuthenticate zum URL Rewrite bekommen?