2017-03-21 3 views
1

Ich habe Middleware für die Authentifizierung verwendet und müssen Benutzer nach dem Typ unterscheiden, wenn sie intern oder extern sind. Danach möchte ich externe Benutzer auf die benutzerdefinierte Fehlerseite umleiten, da sie keinen Zugriff auf bestimmte Bereiche meiner Website haben sollen.Wie umleiten Benutzer von OWIN Middleware?

Ich wollte HttpResponseException mit meinem benutzerdefinierten Statuscode werfen und damit umgehen, indem ich im Web-Config-Abschnitt customErrors mit meiner Fehlerseite verlinke. Allerdings kann ich auf diese Weise keinen benutzerdefinierten Statuscode verwenden und einen der vorhandenen Codes zu verwenden, ist in meinem Fall eine schlechte Idee.

Nach Vereinbarung Ich bin ganz neu in OWIN Middleware und ich bin nicht einmal sicher, was zu Google ehrlich zu sein. Ich werde sehr dankbar sein für Hinweise, wie man solche Situation löst.

Antwort

1

nehmen Hey einen Blick auf diese:

public void Configuration(IAppBuilder app) 
     { 
      ConfigureApp(app); 
      //Some other code here 
      if (_helper.IsNew()) 
      { 
       Debug.Write("This is a new guy. Redirect him to the setup page permanently"); 

       var ctx = new OwinContext(); 
       ctx.Response.Redirect("/Setup");//This is how I redirect from Startip.cs 

      }    

     } 

Beachten Sie den Code, wo ich in IF für truthy bin Überprüfung, auf wahr ich ein neues OWIN CONTEXT erstellen und es leite. Ich kann auch den Umleitungsstatuscode angeben: 301/302. Aber ohne das funktioniert auch der obige Code einwandfrei

0

sollten Sie in der Lage sein response code (303 See Other) zum response Objekt einzustellen, in Middleware und einem location Header, wo Sie Benutzer umleiten möchten.

Wenn Sie das tun Sie basierend auf Ihrer Geschäftslogik sollten Sie nicht next Funktion aufrufen und Benutzer wird an neuen Speicherort umgeleitet (wenn keine andere Middleware unten im Stapel wird die Antwort ändern).

Denken Sie daran, Ihre Middleware vor Web-api oder mvc zu registrieren.

können Sie für web api building custom middleware googeln. Hier ist ein Beispielartikel, den Sie finden könnten Writing Custom Middleware for ASP.NET.

Verwandte Themen