簡體   English   中英

當我在 asp.net core mvc 中未經授權時,如何始終返回登錄/登錄視圖?

[英]How to always return login/sign in view when I'm unauthorized in asp.net core mvc?

我在執行此功能時遇到問題,該功能在我未經授權時總是返回視圖以進行登錄。 我的項目是在 ASP.NET CORE MVC 3.1 中使用 JWT Bearer 創建的。 我可以在直接進入視圖 Login.cshtml 時登錄(單擊登錄后),然后我的 [Autorize] 屬性方法工作正常。 當我轉到具有 [Authorize] 屬性的方法時,我希望始終返回視圖以登錄。

我發現了一些帶有 cookie 的示例,它們返回登錄視圖,但是我將 JWT Bearer 與 Session 一起使用,但我不知道這是必要的。 提前感謝您的幫助。

最后我找到了在 .NET Core 3.1 中工作的方法。 當狀態代碼為 401 - 未授權時,此代碼重定向到登錄/登錄頁面。

app.UseStatusCodePages(async context => {
   var request = context.HttpContext.Request;
   var response = context.HttpContext.Response;

   if (response.StatusCode == (int)HttpStatusCode.Unauthorized)
   {
    response.Redirect("/Home/Login?returnUrl=" + request.Path);
   }

});

每當您調用具有授權屬性的 API 時,如果不記名令牌已過期,您必須向調用方返回 401 - 未經授權的錯誤代碼。 一旦收到 401 錯誤代碼,您就可以僅使用前端邏輯重定向到登錄頁面。

暫無
暫無

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

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