首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Asp.net核心/5中使用策略库的令牌身份验证

在Asp.net核心/5中使用策略库的令牌身份验证
EN

Stack Overflow用户
提问于 2016-02-27 07:51:18
回答 1查看 537关注 0票数 1

我将令牌从客户端发送到服务器,作为

授权:无记名eyJhbGciOiJodHR.

我想授权拥有令牌的用户,这里是我的代码。

代码语言:javascript
运行
复制
services.AddAuthorization(auth =>
{
    auth.AddPolicy("Have", new AuthorizationPolicyBuilder()                                 
    .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
    .RequireAuthenticatedUser().Build());
 });



  services.AddMvc(config =>
  {
     var policy = new AuthorizationPolicyBuilder()
       .RequireAuthenticatedUser()
       .Build();
        config.Filters.Add(new AuthorizeFilter(policy));
  });




 app.UseJwtBearerAuthentication(options => 
 { 
   options.AutomaticAuthenticate = false; 
 });

即使我转动AutomaticAuthenticate,我也得到了500个错误,如果错误,那么401个错误

代码语言:javascript
运行
复制
    [Authorize(Policy ="Have")]
    [HttpGet]
    [Route("list")]
    public IEnumerable<Products> List()
    {
       .......
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-27 11:48:29

对于这种行为,您不需要任何特殊的策略或配置,因为只允许访问授权用户是默认行为。没有令牌或过期令牌的用户是未经授权的,将无法使用[Authorize]属性访问控制器/操作。

你所需要的就是

代码语言:javascript
运行
复制
services.AddAuthentication();

以及您的操作/控制器上的AuthorizeAttribute

这里的策略仅用于验证授权用户的条件,例如,如果用户在18岁或18岁以上(例如,请参阅this answer ),他的生日是用户的要求之一。

如果用户是而不是授权的,则策略将不会对进行验证。这意味着Authorize将始终失败并拒绝访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35667185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档