Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
检查更改/编辑数据库记录的用户访问权限-ASP.Net C#Logic_C#_Asp.net_Sql Server_Entity Framework - Fatal编程技术网

检查更改/编辑数据库记录的用户访问权限-ASP.Net C#Logic

检查更改/编辑数据库记录的用户访问权限-ASP.Net C#Logic,c#,asp.net,sql-server,entity-framework,C#,Asp.net,Sql Server,Entity Framework,我有一个待办的协作web应用程序。任务的所有者添加可以编辑该任务的用户。在数据库中,我有一个用于所有任务的主表,该表具有create user id,第二个表将其他用户映射到一个任务,即TaskId、UserId、OwnerId 在c#中,我通过实体框架检索记录。为了检查用户是否有权访问请求的任务,我查询CreateUserId等于currentUserId的任务,或者任务映射表的userId等于所述任务的currentUserId。请参见下面我的实际查询: var userId = User.

我有一个待办的协作web应用程序。任务的所有者添加可以编辑该任务的用户。在数据库中,我有一个用于所有任务的主表,该表具有create user id,第二个表将其他用户映射到一个任务,即TaskId、UserId、OwnerId

在c#中,我通过实体框架检索记录。为了检查用户是否有权访问请求的任务,我查询CreateUserId等于currentUserId的任务,或者任务映射表的userId等于所述任务的currentUserId。请参见下面我的实际查询:

var userId = User.Identity.GetUserId<int>();
var task = db.TblTasks
            .SingleOrDefault(x => x.Id == model.Id &&
            (x.UserId == userId || x.TaskMembers
            .Any(i => i.TaskId == x.Id && i.UserId == userId && i.Approved == true)
                 ));
var userId=User.Identity.GetUserId();
var task=db.TblTasks
.SingleOrDefault(x=>x.Id==model.Id&&
(x.UserId==UserId | | x.TaskMembers)
.Any(i=>i.TaskId==x.Id&&i.UserId==UserId&&i.Approved==true)
));

虽然这是可行的,但我不确定我的数据库设计或C#逻辑是否能够正确处理这种工作性质。请告知我是否可以进一步改进,或者是否可以实施任何其他最佳实践或专业方法

此问题可能更适合此问题可能更适合