Asp.net web api 如何在资源上使用令牌和身份授权?
我有一个WEB Api,它使用用户帐户进行注册等,还使用令牌。 现在,我希望使用令牌(JWT承载)和标识来保护所有端点。因此,用户不仅拥有有效的令牌,还必须登录。 当我使用Asp.net web api 如何在资源上使用令牌和身份授权?,asp.net-web-api,asp.net-core,token,jwt,Asp.net Web Api,Asp.net Core,Token,Jwt,我有一个WEB Api,它使用用户帐户进行注册等,还使用令牌。 现在,我希望使用令牌(JWT承载)和标识来保护所有端点。因此,用户不仅拥有有效的令牌,还必须登录。 当我使用[Authorize(Policy=“Bearer”)]我获得代币授权,当我使用[Authorize]我获得身份授权时,我如何将两者结合起来?我假设我可以执行[Authorize(Policy=“Bearer,Identity”)](基于角色逻辑),但我得到了一个错误,即该策略不存在。 有没有办法实现这一点 回购: 当我使用[
[Authorize(Policy=“Bearer”)]
我获得代币授权,当我使用[Authorize]
我获得身份授权时,我如何将两者结合起来?我假设我可以执行[Authorize(Policy=“Bearer,Identity”)](基于角色逻辑),但我得到了一个错误,即该策略不存在。
有没有办法实现这一点
回购:
当我使用[Authorize(Policy=“Bearer”)]时,我获得令牌授权,当我使用[Authorize]时,我获得身份授权,如何将两者结合起来?[原文如此]
设置ActiveAuthenticationSchemes
属性。它采用逗号分隔的方案名称列表。下面是一个激活标识使用的cookie中间件和承载(令牌)中间件的示例
[Authorize(ActiveAuthenticationSchemes = "Bearer, Identity.Application")]
承载器和cookie中间件都将运行,并有机会为当前用户创建和附加标识
备注:
您可以激活所需的任何身份验证方案。默认方案名称位于Identity
和Authentication
名称空间中。例如
Microsoft.AspNetCore.Authentication.JwtBearer
.JwtBearerDefaults.AuthenticationScheme // "Bearer"
Microsoft.AspNetCore.Identity
.IdentityCookieOptions.ApplicationCookie // "Identity.Application"
...
另见: