[英]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 code
( 303 See Other
),並將location
標頭設置為您要重定向用戶的位置。
當您根據自己的業務邏輯進行操作時,不應調用next
函數,並且用戶將被重定向到新位置(如果堆棧中沒有其他中間件,則將更改響應)。
記住在Web api或mvc之前先注冊中間件。
您可以通過google搜索用於web api building custom middleware
。 這是一個示例文章,您可以找到為ASP.NET編寫自定義中間件 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.