权限检查的设计建议

时间:2015-09-08 14:01:27

标签: sql-server asp.net-web-api permissions social-networking mediator

注意:这是一个设计问题。如果stackoverflow不是此类问题的最佳位置,请告知我们。可能还有其他未知的元网站。

我使用asp.net web API开发了一个RESTful API,并使用mediatr作为我的主库来处理查询/命令。我的数据存储是MS SQL Server。

此API的主要目的是提供类似社交网络的网络应用:用户有 关注者 ,可能 喜欢和 评论 上传 下载 东西。他们还可以与 所有人 关注者 < 分享 / strong> only。

安全性显然是此应用程序的主要问题之一。如果用户具有使用复杂查询(连接,子查询等)检查的相应权限,则只能执行操作(如注释,下载等)。

我考虑过两个选项,目前正在使用第一个选项:

  1. 执行包含所有连接和检查的SQL查询。这为您提供单个DB往返的好处。但是,您的安全检查(规则)已嵌入到您的数据库中,我不太喜欢。

  2. 利用调解器pipeline of activities检查权限。这可能涉及大量的数据库查询(昂贵),但是,您的代码完全面向对象且易于理解,更重要的是易于测试!

  3. 我发现维护此代码非常困难,因为这些查询无处不在,我无法轻松测试它。任何建议都会非常有帮助。

0 个答案:

没有答案