簡體   English   中英

如何從OWIN中間件重定向用戶?

[英]How to redirect user from OWIN middleware?

我有用於身份驗證目的的中間件,並且需要根據用戶的內部或外部類型來區分它們。 此后,我想將外部用戶重定向到自定義錯誤頁面,因為他們不應該訪問我網站的特定部分。

我想將HttpResponseException與我的自定義狀態代碼一起拋出,並通過在我的錯誤頁面的Web配置部分customErrors進行鏈接來處理它。 但是,我不能以這種方式使用自定義狀態代碼,在我的情況下,使用現有代碼之一不是一個好主意。

老實說,我對OWIN中間件還很陌生,我什至不知道該用什么。 我將不勝感激如何解決這種情況的提示。

嘿看看這個:

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

            }            

        }

觀察我在IF中檢查真實性的代碼,如果正確,我將創建一個新的OWIN CONTEXT並在那里重定向。 我還可以指定重定向狀態代碼:301/302。 但是沒有這個,上面的代碼也可以正常工作

您應該能夠為中間件中的response對象設置response code303 See Other ),並將location標頭設置為您要重定向用戶的位置。

當您根據自己的業務邏輯進行操作時,不應調用next函數,並且用戶將被重定向到新位置(如果堆棧中沒有其他中間件,則將更改響應)。

記住在Web api或mvc之前先注冊中間件。

您可以通過google搜索用於web api building custom middleware 這是一個示例文章,您可以找到為ASP.NET編寫自定義中間件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM