【发布时间】:2023-03-10 04:17:02
【问题描述】:
使用 .Net 框架、Web Api。
我的控制器上有[Authorize] 属性,一些端点上有[AllowAnonymous]。
我有几个端点允许匿名,但如果用户通过身份验证,则返回不同(更多)数据。
如果用户拥有过期的令牌,他们当前会获得匿名版本的数据。
我想做的是,如果请求标头中存在令牌并且令牌无效(通常是因为它已过期),我想返回 401,即使该方法标记为 [AllowAnonymous]。
(这将触发客户端获取新令牌并获取经过身份验证的数据,而不是静默地仅获取数据的子集)
谢谢
编辑澄清:我正在寻找的是一个过滤器,它将检查 User.Identity.IsAuthenticated 是否为假,但请求中有一个授权持有者令牌,尽管该方法被标记为 [AllowAnonymous],但过滤器应该返回 401 .
【问题讨论】:
-
是检查用户是否有过期令牌的问题,还是如何返回401的问题?
-
@PajLe,问题是返回 401
-
@PajLe 抱歉,我的回答不正确,请参阅对您的回答的附加评论。
标签: .net authentication webapi