Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取数据时受保护的数据_C#_Oop_Design Patterns_N Tier Architecture - Fatal编程技术网

C# 获取数据时受保护的数据

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()时,用户只能看到属于用户公司的数据。 还有一些特定的用户(我们称之为超

我的问题是为了以下目的保护数据和创建智能体系结构。 我有一个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方法可以根据传入的用户计算出要获取的正确库

希望这有帮助