Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在I';我在asp.net核心mvc中未经授权?_C#_Asp.net Mvc_Asp.net Core_Asp.net Core Mvc_Asp.net Core 3.1 - Fatal编程技术网

C# 如何在I';我在asp.net核心mvc中未经授权?

C# 如何在I';我在asp.net核心mvc中未经授权?,c#,asp.net-mvc,asp.net-core,asp.net-core-mvc,asp.net-core-3.1,C#,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,Asp.net Core 3.1,我对该功能的实现有一个问题,当我未经授权时,该功能总是返回视图进行登录。我的项目是在ASP.NET CORE MVC 3.1中使用JWT Bearer创建的。我可以直接登录到view Login.cshtml(单击“登录”后),然后我的带有[Autorize]属性的方法就可以正常工作了。 当我转到具有[Authorize]属性的方法时,我希望始终返回视图以登录 我发现了一些cookie返回登录视图的例子,但我在会话中使用JWT承载器,我不知道这是必要的。提前感谢您的帮助。每当您调用具有autho

我对该功能的实现有一个问题,当我未经授权时,该功能总是返回视图进行登录。我的项目是在ASP.NET CORE MVC 3.1中使用JWT Bearer创建的。我可以直接登录到view Login.cshtml(单击“登录”后),然后我的带有[Autorize]属性的方法就可以正常工作了。 当我转到具有[Authorize]属性的方法时,我希望始终返回视图以登录


我发现了一些cookie返回登录视图的例子,但我在会话中使用JWT承载器,我不知道这是必要的。提前感谢您的帮助。

每当您调用具有authorize属性的API时,如果承载令牌过期,您必须向调用者返回401-Unauthorized错误代码。一旦收到401错误代码,您就可以重定向到仅使用前端逻辑的登录页面

无论何时调用具有authorize属性的API,如果承载令牌过期,则必须向调用方返回401-Unauthorized错误代码。一旦收到401错误代码,您就可以重定向到仅使用前端逻辑的登录页面

最后我找到了在.NETCore3.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);
   }

});


最后,我找到了在.NETCore3.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);
   }

});


我在项目中使用.cshtml视图,并考虑添加如下逻辑:services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(o=>o.LoginPath=newPathString(“/Home/SignIn”)@卡米尔,你的重定向代码不起作用。我测试它,在我的项目中使用.cshtml视图,并考虑添加如下逻辑:services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(o=>o.LoginPath=new-PathString(“/Home/sign”)@卡米尔,你的重定向代码不起作用。我测试它。