ASP.NET Core中的承载令牌身份验证

格言

尝试在简单的.Net Core Web API项目中使用基于承载令牌的身份验证。这是我的Startup.cs

app.UseMvc();
//---
const string secretKey = "mysupersecret_secretkey!123";
SymmetricSecurityKey signingKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey));
SigningCredentials signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
//---
const string audience = "Audience";
const string issuer = "Issuer";
//---
TokenValidationParameters tokenValidationParameters = new TokenValidationParameters
{
    ValidateIssuerSigningKey = true,
    IssuerSigningKey = signingKey,

    ValidateIssuer = false,
    ValidIssuer = issuer,

    ValidateAudience = true,
    ValidAudience = audience,

    ValidateLifetime = true,

    ClockSkew = TimeSpan.Zero,
    AuthenticationType = JwtBearerDefaults.AuthenticationScheme
};
//---
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
    AutomaticAuthenticate = true,
    AutomaticChallenge = true,
    TokenValidationParameters = tokenValidationParameters,
    AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme,
});

我也添加AuthorizeAttribute到控制器动作

[HttpGet]
[Authorize(ActiveAuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public IEnumerable<string> Get()
{
    return new[] { "value1", "value2" };
}

但是当尝试发送带有标头的获取请求时,Authorization: Bearer [TOKEN]我得到了例外

System.InvalidOperationException: No authentication handler is configured to authenticate for the scheme: Bearer
   at Microsoft.AspNetCore.Http.Authentication.Internal.DefaultAuthenticationManager.

那么,这个“身份验证处理程序”是什么?我需要在哪里设置此处理程序?

凯文·查特(Kevin Chalet)

在ASP.NET Core中,中间件的顺序很重要:它们以与注册时相同的顺序执行。在这里,app.UseMvc()在JWT承载中间件之前被调用,因此这是行不通的。

将其放在app.UseMvc()管道的末端,它应该可以正常工作:

app.UseJwtBearerAuthentication(new JwtBearerOptions
{
    AutomaticAuthenticate = true,
    AutomaticChallenge = true,
    TokenValidationParameters = tokenValidationParameters,
    AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme,
});

app.UseMvc();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ASP.net API的承载令牌身份验证

来自分类Dev

使用基于ASP.NET身份令牌的身份验证在每个Web Api请求中授权声明

来自分类Dev

处理OAuth 2.0身份验证-在ASP.NET MVC应用程序中获取令牌重定向令牌响应

来自分类Dev

ASP.NET MVC中的身份Cookie身份验证

来自分类Dev

在asp.net vnext上使用承载令牌身份验证刷新令牌

来自分类Dev

ASP.Net Core SAML身份验证

来自分类Dev

ASP.NET Core中的基本身份验证

来自分类Dev

在Asp.net core / 5中使用策略库进行令牌身份验证

来自分类Dev

如何在ASP.NET Core 1.0中配置身份验证

来自分类Dev

在ASP.NET Core中针对Mongodb数据存储区的基于简单令牌的身份验证/授权

来自分类Dev

.NET Core令牌身份验证-主体

来自分类Dev

在ASP.NET Core 3.0中如何获取当前经过身份验证的用户名?

来自分类Dev

在开发中禁用Asp.Net Core 3.0中的身份验证

来自分类Dev

使用ADFS的JWT承载身份验证将ASP.NET Framework迁移到ASP.NET Core 3.1

来自分类Dev

如何检查用户是否在ASP.NET Core中已通过身份验证

来自分类Dev

Cookie身份验证在ASP.NET Core应用程序中不起作用

来自分类Dev

我的ASP.NET Core App Service Web API如何同时支持AAD承载令牌和客户端证书身份验证?

来自分类Dev

当使用ASP.NET Core Web API中没有身份的cookie身份验证时,如何在登录时刷新CSRF令牌

来自分类Dev

在ASP.NET Core 3.1中使用多种身份验证方案?

来自分类Dev

什么是ASP.NET Core的Microsoft身份验证方案?

来自分类Dev

如何在asp.net中检查基于令牌的GET和Post方法的身份验证

来自分类Dev

使用ASP.NET Core RC2 404(而不是403)进行承载身份验证

来自分类Dev

ASP.Net Core中的自定义身份验证机制

来自分类Dev

ASP.NET Core 中特定路由上的 NTLM 身份验证

来自分类Dev

在 Asp.Net Core 中实现自定义的 2 因素身份验证机制

来自分类Dev

在 ASP.NET Core 2 中使用令牌或 Open ID Connect 进行身份验证

来自分类Dev

使用 ASP.Net Core 2 中的 cookie(无 DB)进行 Google 身份验证

来自分类Dev

Asp.Net Core 2 中基于令牌的身份验证

来自分类Dev

静态文件 - asp.net web api core 2.1 身份验证方案承载

Related 相关文章

  1. 1

    使用ASP.net API的承载令牌身份验证

  2. 2

    使用基于ASP.NET身份令牌的身份验证在每个Web Api请求中授权声明

  3. 3

    处理OAuth 2.0身份验证-在ASP.NET MVC应用程序中获取令牌重定向令牌响应

  4. 4

    ASP.NET MVC中的身份Cookie身份验证

  5. 5

    在asp.net vnext上使用承载令牌身份验证刷新令牌

  6. 6

    ASP.Net Core SAML身份验证

  7. 7

    ASP.NET Core中的基本身份验证

  8. 8

    在Asp.net core / 5中使用策略库进行令牌身份验证

  9. 9

    如何在ASP.NET Core 1.0中配置身份验证

  10. 10

    在ASP.NET Core中针对Mongodb数据存储区的基于简单令牌的身份验证/授权

  11. 11

    .NET Core令牌身份验证-主体

  12. 12

    在ASP.NET Core 3.0中如何获取当前经过身份验证的用户名?

  13. 13

    在开发中禁用Asp.Net Core 3.0中的身份验证

  14. 14

    使用ADFS的JWT承载身份验证将ASP.NET Framework迁移到ASP.NET Core 3.1

  15. 15

    如何检查用户是否在ASP.NET Core中已通过身份验证

  16. 16

    Cookie身份验证在ASP.NET Core应用程序中不起作用

  17. 17

    我的ASP.NET Core App Service Web API如何同时支持AAD承载令牌和客户端证书身份验证?

  18. 18

    当使用ASP.NET Core Web API中没有身份的cookie身份验证时,如何在登录时刷新CSRF令牌

  19. 19

    在ASP.NET Core 3.1中使用多种身份验证方案?

  20. 20

    什么是ASP.NET Core的Microsoft身份验证方案?

  21. 21

    如何在asp.net中检查基于令牌的GET和Post方法的身份验证

  22. 22

    使用ASP.NET Core RC2 404(而不是403)进行承载身份验证

  23. 23

    ASP.Net Core中的自定义身份验证机制

  24. 24

    ASP.NET Core 中特定路由上的 NTLM 身份验证

  25. 25

    在 Asp.Net Core 中实现自定义的 2 因素身份验证机制

  26. 26

    在 ASP.NET Core 2 中使用令牌或 Open ID Connect 进行身份验证

  27. 27

    使用 ASP.Net Core 2 中的 cookie(无 DB)进行 Google 身份验证

  28. 28

    Asp.Net Core 2 中基于令牌的身份验证

  29. 29

    静态文件 - asp.net web api core 2.1 身份验证方案承载

热门标签

归档