C# 获取数据时受保护的数据
我的问题是为了以下目的保护数据和创建智能体系结构。 我有一个LibraryBS类(有很多这样的类型类),它从数据库中获取数据。LibraryBS类具有GETALL()和GetById(int libraryId)函数。GETALL获取所有库,GetById仅从Id=libraryId的数据库中获取一个库。这是一个使用这些类的web应用程序。 现在我想增加公司保护。这意味着当用户登录系统并使用LibraryBs.GetAll()时,用户只能看到属于用户公司的数据。 还有一些特定的用户(我们称之为超级用户),当这种类型的用户进入系统时,他们可以看到所有数据 你推荐什么样的款式C# 获取数据时受保护的数据,c#,oop,design-patterns,n-tier-architecture,C#,Oop,Design Patterns,N Tier Architecture,我的问题是为了以下目的保护数据和创建智能体系结构。 我有一个LibraryBS类(有很多这样的类型类),它从数据库中获取数据。LibraryBS类具有GETALL()和GetById(int libraryId)函数。GETALL获取所有库,GetById仅从Id=libraryId的数据库中获取一个库。这是一个使用这些类的web应用程序。 现在我想增加公司保护。这意味着当用户登录系统并使用LibraryBs.GetAll()时,用户只能看到属于用户公司的数据。 还有一些特定的用户(我们称之为超
谢谢大家! 考虑到库的表,它应该包含列companyId和另一个表用户,该表用户将companyId作为外键。 可能您可以在用户表中添加一列“Access” 将有包含数据的“Access”列的查找表
Id AccessLevel
0 Undefined
1 User
2 Company
User Table
Id Name Access CompanyId
1 Bob 1 1
1 Jon 2 2
所以当你获取数据时,比如说用户Bob,您可以根据该用户的访问权限动态创建where子句。您需要一个用户表,用于存储具有引用键或外键的用户到公司的表,该表存储公司详细信息,以及一个访问级别表,该表存储具有外键引用的用户访问级别到use和company,以及一个表示访问权限的列每个公司每个用户的级别。您还需要在返回公司的库表中包含一个引用 有了它,您需要使LibraryBS.GetAll方法将用户对象作为参数 有了它,您的GetAll方法可以根据传入的用户计算出要获取的正确库 希望这有帮助