我正在使用带有Claims的即用身份功能来开发一个非常标准的成员资格类型ASP Core MVC网站。登录后,我会为“ FirstName”等创建各种声明...,以便可以在可能需要该值的各个页面上轻松调用它们。
我想创建一个称为“ SubscriptionEndDate”的声明,以便我可以确定某人是否具有经过身份验证的登录名,但其订阅已过期。我允许他们使用过期的订阅进入各个区域(例如,“续订”页面),但是他们不能执行站点的主要功能。
这一切都很好,直到我们达到续订日期并且续订了订阅(通过另一个后台过程)。由于我确实允许他们在其计算机上保存身份验证cookie来绕过登录,因此有时会发生续订,但SubscriptionEndDate Claim已过期。因此,该网站将给他们一个错误的错误消息,表明他们的帐户已过期。不好。
我真的只需要在每次会话启动时检查一次数据库(即,当他们打开浏览器并再次访问我的站点时,即使他们已经保存了身份验证cookie,也是如此)。我确定这之前已经解决-有什么建议吗?
谢谢!
您可以使用ValidatePrincipal Event进行此操作,链接中提供了详细信息。