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

时间:2017-10-31 04:37:06

标签: c# asp.net sql-server entity-framework

我有一个待办事项协作网络应用程序。任务的所有者添加可以编辑该任务的用户。在内部数据库中,我有一个主表,用于创建用户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)
                 ));

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

0 个答案:

没有答案