我想知道在MVC应用程序中检查实际登录用户权限的最佳做法是什么。我想在视图和控制器上执行此操作。
实际上,我可以检查实际登录的用户是否具有以下角色:
User.IsInRole("roleName");
我有权利的表。每个权利都包含名称和Enum权利表示。我想要完成的是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,以便从数据库中获取检查用户是否拥有权限所需的任何数据?