|
|
1
2
我不会在靠近UI(ASP.NET)层的任何地方处理这个问题,而是在应用程序服务中处理。类似:
从长远来看,这将更具可测试性和可用性,然后从ASP.NET用户界面方面考虑这一点。
如果必须在ASP.NET端处理它,我将考虑使用自定义
|
|
|
2
1
通常,这类事情是在数据级别处理的。它与ASP.NET没有什么关系,除了Ultimate,您需要一个用户ID(来自成员资格)。您要做的是找到您想要控制访问权限的实体的某个部分,然后创建所有查询来筛选该部分。 例如,如果您在库级别进行访问,那么您将在用户和库之间添加一个关联。这可以是1:1、1:many、many:many,无论您的数据模型需要什么。关键是通过这个级别的连接将始终不返回任何记录,因此整个查询将不返回任何记录。 例如,假设一个用户只能属于一个库。 用户表有libraryid,图书表有libraryid,这使得用户和图书之间的有效多对多联接。因此,您在libraryid上加入用户和库,并在libraryid上加入库和图书,那么查询将只返回属于用户关联的库的图书。 这样,用户就不可能查询任何与其不直接相关的内容。安全性完全在数据库中,不需要业务逻辑。 |