【发布时间】:2020-08-04 21:20:45
【问题描述】:
我正在使用带有声明的开箱即用身份功能开发一个非常标准的会员类型 ASP Core MVC 站点。登录后,我会为“FirstName”等创建各种声明......因此我可以在可能需要该值的各种页面上轻松调用它们。
我想创建一个名为“SubscriptionEndDate”的声明,以便我可以确定是否有人拥有经过身份验证的登录,但他们的订阅已过期。我允许他们使用过期订阅(例如续订页面)前往各个区域,但他们无法执行网站的主要功能。
这一切都很好,直到我们达到续订日期并且他们的订阅被续订(通过另一个后台进程)。由于我确实允许他们将身份验证 cookie 保存在他们的计算机上以绕过登录,因此有时会发生续订但 SubscriptionEndDate 声明已过期。所以网站会给他们一个虚假的错误信息,说明他们的帐户已过期。不好。
我真的只需要在每次会话开始时检查一次数据库(即,当他们打开浏览器并再次访问我的网站时,即使他们已经保存了身份验证 cookie)。我确定这已经解决了 - 有什么建议吗?
谢谢!
【问题讨论】:
标签: asp.net-mvc asp.net-core asp.net-identity claims-based-identity