gpt4 book ai didi

asp.net - 为什么我必须调用 base.OnAuthorization(filterContext)

转载 作者:行者123 更新时间:2023-12-04 05:30:48 25 4
gpt4 key购买 nike

我看过很多指南,其中自定义授权过滤器的实现涉及调用 base.OnAuthorization(filterContext) 作为最后一步。我有我自己的自定义授权过滤器,它在没有上面提到的情况下工作得很好。但是,当我添加对 base.OnAuthorization(filterContext) 的调用时,我的 WebAPI 服务返回 401,即使所有检查都成功通过。

1) 为什么我必须调用 base.OnAuthorization?
2)它怎么会自己返回401?

编辑:我认为它与默认的成员资格和角色提供者有关。由于我有点跳过这些,这可能是原因吗?

一旦我调用 base.OnAuthorization,我的响应就会变成 401。

最佳答案

如果您自己处理所有事情,则不必调用它。

但是如果你这样做,授权逻辑会将用户( IPrincipal.Identity )从 Thread.CurrentPrincipal 中拉出如果满足以下条件之一,将拒绝授权 (401):

  • IPrincipal为空
  • IPrincipal.Identity未通过身份验证
  • IPrincipal.Identity已通过身份验证但不在授权范围内
    用户组,或者如果用户不属于任何授权角色
    (在属性上指定)
  • 关于asp.net - 为什么我必须调用 base.OnAuthorization(filterContext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664526/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com