DiP*_*Pix 16 c# asp.net authorization bearer-token asp.net-core
我第一次在ASP.NET Core中创建Authorization.我从这里使用教程TUTORIAL
问题是当我从邮递员发送请求时:
Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6I...
Run Code Online (Sandbox Code Playgroud)
用[Authorize]属性修饰的控制器中的方法.
我401 Unauthorized
总是收到...我看到了教程的评论,似乎有些人也有类似的问题.我不知道如何解决这个问题.
eug*_*ecp 20
在 ASP.NET Core 3.0 中,我遇到了同样的问题,对我有用的是:
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
Run Code Online (Sandbox Code Playgroud)
在 StartUp.Configure 方法中。
此文档显示了中间件组件的典型排序:https : //docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-3.0
DiP*_*Pix 19
应其他人的要求,答案是:
问题在于Startup.cs中的中间件顺序
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
ConfigureAuth(app); // your authorisation configuration
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
为什么中间件订单很重要?如果我们app.UseMvc()
先放- 然后MVC操作将进入路由,如果他们看到Authorize属性,他们将控制其处理,这就是我们收到401 Unauthorized错误的原因.
我希望它可以帮助某人;)
小智 8
如果您使用的是 ASP.NET Core 3.0
检查此订单
app.UseAuthentication();
app.UseRouting();
//必须在下面 app.UseAuthentication();
如果您使用的是 ASP.NET Core < 3.0
只需更换app.UseRouting();
由app.UseMvc();
IE:
app.UseAuthentication();
app.UseMvc();
//必须在下面 app.UseAuthentication();
归档时间: |
|
查看次数: |
10665 次 |
最近记录: |