URL-Umschreibung in der OWIN-Middleware

8

Ich habe ein Problem mit dem Umschreiben von URLs, das in Global.asax aber nicht in OWIN-Middleware funktioniert.

Global.asax-Code

%Vor%

OWIN-Middleware-Code (wird für die Kulturerkennung verwendet, der Code wird verkürzt)

%Vor%

Ich erwarte, dass "Globale" Aktion des Controllers "Home" aufgerufen wird ... aber stattdessen wird die Standardaktion "Index" aufgerufen.

Nachdem der Pfad geändert wurde context.Request.Uri.AbsoluteUri ist http://localhost/Global/Home

Aber Controller Request.Url.AbsoluteUri ist immer noch http://localhost

Ich habe sogar context.Environment["owin.RequestPath"] = "/Home/Global"; ausprobiert, aber das scheint auch nicht zu funktionieren.

Bevor jemand fragt, ja, rufe ich die IAppBuilder.Use(typeof(GlobalizationMiddleware)) in Startup.cs auf und der Debugger gibt die Invoke-Methode ein.

Was mache ich falsch?

BEARBEITEN

Ich habe sogar versucht, auf System.Web zu verweisen und dann funktioniert das auch nicht: (

%Vor%

BEARBEITEN 2 - Ich habe eine funktionierende Lösung gefunden (siehe unten), aber ich bin mir nicht sicher, ob es die richtige Lösung ist, Kommentare würden mir gefallen:)

    
Mirek 31.01.2015, 13:40
quelle

1 Antwort

4

Ich habe eine funktionierende Lösung gefunden.

Leider musste ich System.Web hinzufügen. Ich ändere direkt das RouteData-Objekt im RequestContext.

%Vor%

Aber das fühlt sich für meinen Geschmack zu hacky an ... Ich bin nicht sicher, ob dies die richtige Lösung ist, also werde ich das nicht als gültige Antwort akzeptieren, vielleicht wird jemand mit einer besseren Lösung kommen.

    
Mirek 31.01.2015 14:19
quelle

Tags und Links