点网:授权如果用户已订阅

时间:2018-10-24 09:32:58

标签: c# asp.net-core-mvc authorize-attribute asp.net-authorization

我想限制某些功能仅适用于已购买精英套餐的订户。 要确定用户是否为订户,我必须转到存储库并查询该用户是否至少有1个活动软件包。

我正在应用基于策略的授权。最终,我必须通过一项服务来访问存储库层以进行查询,但是由于AuthorizationHandler是单例,因此它不会消耗服务。

我在考虑是否可以在User表中创建一个额外的计算列,以指示用户是否具有有效的软件包。

在这种情况下,最佳做法是什么?如果用户购买了产品(包装),如何授权用户?

1 个答案:

答案 0 :(得分:0)

您可能有一个单例服务,该服务可以为您的AuthorizationHandler提供信息(取决于您使用的IoC容器-或只是一个初始实例),

如果您有一个与用户相关联的字段(根据安全性的实现,可能包括在auth令牌中),则可以大大提高性能。