authorization - 即使对于 [AllowAnonymous] 操作,如何强制在 AuthenticatedUsers 上调用 ValidatePrincipal?
问题描述
我在一个新的 ASP.NET CORE 3.1 项目上使用 cookie 身份验证。
我有一个供来宾和经过身份验证的用户使用的控制器操作。因此,它用AllowAnonymous
属性装饰。
如果用户通过了身份验证,则操作的行为会略有不同,因此我使用它httpContext.User.Identity.IsAuthenticated
来检查它,如果为真,然后我检索主体的声明以执行数据库更新。
我遇到的问题是,由于操作允许是匿名的,因此OnValidatePrincipal
不会调用 cookie 身份验证方案的事件来确保当前声明是最新的。
这意味着即使httpContext.User.Identity.IsAuthenticated
标志为真,我也不能依赖它附带的声明,因为在这种情况下它们没有得到验证。
首先,这在我看来是个问题。其次,有谁知道是否有办法解决这个问题?无论动作是否需要授权OnValidatePrincipal
,一旦标志为真,有一些方法可以强制调用事件?httpContext.User.Identity.IsAuthenticated
解决方案
推荐阅读
- python - Power BI 和 Pycaret.clustering Python 库
- flutter - GetX 颤振状态未更新
- reactjs - 用于内部身份验证令牌发行的 OAuth 代码授权流程
- javascript - prisma generate:无法解析依赖树(Prisma + Postgresql + NextJS)
- java - 在 JavaFX 中绘制形状
- powershell - PowerShell 脚本中的 Azure DevOps REST API 顶部参数不起作用
- flutter - 我的有状态小部件不会更新 ui,即使我正在调用 setState 并将正确的值传递给小部件类
- android - 在颤振中构建 appbundle 时出现错误
- c# - 实体框架:如何基于现有属性添加关联
- python - 在python中实现rot13