【发布时间】:2013-12-15 21:24:10
【问题描述】:
我想知道在 MVC 应用程序中检查实际登录用户权限的最佳做法是什么。我想在视图和控制器上执行此操作。
实际上我可以检查实际登录的用户是否具有这样的角色:
User.IsInRole("roleName");
我有权限的表。每个权限都包含名称和枚举权限表示。我想要完成的是 IPrincipal 或 IIdentity 的扩展方法,因此我可以像这样检查用户的权限:
扩展方法示例:
public static class MyPrincipal
{
public static string HasRight(this IPrincipal principal, EnumRight right)
{
// THIS would be place where I would check if a user have right with specific enum.
return true/false;
}
}
然后在视图或控制器上我可以这样使用:
if(User.HasRight(EnumRight.AddDocuments) )
{
//DO SOMETHING
}
这是一种好的做法,或者我怎样才能更简单地执行类似的机制?也许是独立的静态类而不是扩展?
如何在我的扩展方法中获取实际用户 ID 以从数据库中获取检查用户是否拥有权限所需的任何数据?
【问题讨论】:
标签: asp.net-mvc rights-management