ASP核心身份声明-声明已过时

问题描述 投票:0回答:1

我正在使用带有Claims的即用身份功能来开发一个非常标准的成员资格类型ASP Core MVC网站。登录后,我会为“ FirstName”等创建各种声明...,以便可以在可能需要该值的各个页面上轻松调用它们。

我想创建一个称为“ SubscriptionEndDate”的声明,以便我可以确定某人是否具有经过身份验证的登录名,但其订阅已过期。我允许他们使用过期的订阅进入各个区域(例如,“续订”页面),但是他们不能执行站点的主要功能。

这一切都很好,直到我们达到续订日期并且续订了订阅(通过另一个后台过程)。由于我确实允许他们在其计算机上保存身份验证cookie来绕过登录,因此有时会发生续订,但SubscriptionEndDate Claim已过期。因此,该网站将给他们一个错误的错误消息,表明他们的帐户已过期。不好。

我真的只需要在每次会话启动时检查一次数据库(即,当他们打开浏览器并再次访问我的站点时,即使他们已经保存了身份验证cookie,也是如此)。我确定这之前已经解决-有什么建议吗?

谢谢!

asp.net-mvc asp.net-core asp.net-identity claims-based-identity
1个回答
0
投票

您可以使用ValidatePrincipal Event进行此操作,链接中提供了详细信息。

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-3.1#react-to-back-end-changes

© www.soinside.com 2019 - 2024. All rights reserved.