我有以下内容:-
我正在使用启用了 Windows 身份验证的 Asp.net MVC4 开发资产管理系统。
系统允许指定一组用户可以执行的操作(例如某些组可以有权添加新的物理资产,而他们只能读取某些逻辑资产,等等)。
所以我发现使用内置的 Asp.net 角色管理,不会让我拥有我想要的灵活性级别。所以我决定做以下事情:-
- 我创建了一个名为“组”的表,代表用户组。用户存储在活动目录中的位置。
- 我创建了一个名为“安全角色”的表,它指示每个组对每个资产类型(编辑、添加、删除或查看)每种资产类型的权限级别。
- 然后在每个操作方法上,我将使用 Helper 方法来实现并检查某些用户是否在具有所需权限的相关组内,例如
在Car model object
我将创建一个新的辅助方法
Public bool HaveReadPermison(string userName) {
//check if this user is within a group than have Read permission on CARS, //OR is within a GROUP THAT HAVE HIGHER PERMISON SUCH AS EDIT OR ADD OR //DELETE.
}
接下来,在 Action 方法上,我将通过调用 action 方法检查用户是否具有读取权限:-
public ActionResult ViewDetails(int id) { // to view transportation asset type
Car car = repository.GetCar(id);
if (!car.HaveReadPermision(User.Identity.Name)) {
if (car == null)
return View("NotFound");
else
return View(car);
}
else
return view (“Not Authorized”);
因此,任何人都可以建议我的方法是否有效,否则会导致我不知道的问题。问候