使用AuthorizationHandler允许基于另一个表/类进行访问

时间:2017-12-01 11:11:32

标签: asp.net core asp.net-authorization

我需要限制对用户授权的表'Case'中的那些记录的访问权限。我创建了一个表'CaseUser',用于存储用户ID和caseid以解决n-m关系。

我创建了一个ViewRequirement课程,并将其作为单身人士添加到ConfigureServices的{​​{1}}。

以下我创建了以下AuthorizationHandler:

Startup.cs

我收到了错误

  

Field' CaseViewHandler._context'从未分配给,并且将始终具有其默认值null

如何注入public class CaseViewHandler : AuthorizationHandler<ViewRequirement, Case> { private readonly ApplicationDbContext _context; protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ViewRequirement requirement, Case resource) { var caseUsers = from c in _context.CaseUser .Where(t => t.CaseId == resource.CaseId || t.UserId == context.User.FindFirst(ClaimTypes.Name).Value) select c; if(caseUsers != null) { context.Succeed(requirement); } return Task.CompletedTask; } } 类并在CaseUser

中使用它

0 个答案:

没有答案