ASP 核心身份声明 - 过时的声明
ASP Core Identity Claims - Claims That Become Out of Date
我正在开发一个非常标准的成员资格类型 ASP 核心 MVC 站点,使用带声明的开箱即用身份功能。登录后,我为 "FirstName" 等创建了各种声明...因此我可以轻松地在可能需要该值的各种页面上调用它们。
我想创建一个名为 "SubscriptionEndDate" 的声明,这样我就可以确定是否有人拥有经过身份验证的登录但他们的订阅已过期。我允许他们访问过期订阅的各个区域(例如续订订阅页面),但他们无法执行网站的主要功能。
这一切工作正常,直到我们达到续订日期并且他们的订阅被续订(通过另一个后台进程)。由于我确实允许他们将身份验证 cookie 保存在他们的计算机上以绕过登录,因此有时会发生续订但 SubscriptionEndDate 声明已过期。因此该网站会给他们一个虚假的错误信息,说他们的账户已经过期了。不好。
我真的只需要在每次会话开始时检查一次数据库(即,当他们打开浏览器并再次访问我的站点时,即使他们已经保存了他们的身份验证 cookie)。我确定这个问题之前已经解决了 - 有什么建议吗?
谢谢!
您可以使用 ValidatePrincipal 事件执行此操作,link 中提供了详细信息。
我正在开发一个非常标准的成员资格类型 ASP 核心 MVC 站点,使用带声明的开箱即用身份功能。登录后,我为 "FirstName" 等创建了各种声明...因此我可以轻松地在可能需要该值的各种页面上调用它们。
我想创建一个名为 "SubscriptionEndDate" 的声明,这样我就可以确定是否有人拥有经过身份验证的登录但他们的订阅已过期。我允许他们访问过期订阅的各个区域(例如续订订阅页面),但他们无法执行网站的主要功能。
这一切工作正常,直到我们达到续订日期并且他们的订阅被续订(通过另一个后台进程)。由于我确实允许他们将身份验证 cookie 保存在他们的计算机上以绕过登录,因此有时会发生续订但 SubscriptionEndDate 声明已过期。因此该网站会给他们一个虚假的错误信息,说他们的账户已经过期了。不好。
我真的只需要在每次会话开始时检查一次数据库(即,当他们打开浏览器并再次访问我的站点时,即使他们已经保存了他们的身份验证 cookie)。我确定这个问题之前已经解决了 - 有什么建议吗?
谢谢!
您可以使用 ValidatePrincipal 事件执行此操作,link 中提供了详细信息。