[英]How to use multiple login pages in .ASP.NET Core MVC and unauthorized user redirect different login page
[英]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.