我想限制某些功能仅适用于已购买精英套餐的订户。 要确定用户是否为订户,我必须转到存储库并查询该用户是否至少有1个活动软件包。
我正在应用基于策略的授权。最终,我必须通过一项服务来访问存储库层以进行查询,但是由于AuthorizationHandler是单例,因此它不会消耗服务。
我在考虑是否可以在User表中创建一个额外的计算列,以指示用户是否具有有效的软件包。
在这种情况下,最佳做法是什么?如果用户购买了产品(包装),如何授权用户?
答案 0 :(得分:0)
您可能有一个单例服务,该服务可以为您的AuthorizationHandler提供信息(取决于您使用的IoC容器-或只是一个初始实例),
如果您有一个与用户相关联的字段(根据安全性的实现,可能包括在auth令牌中),则可以大大提高性能。