我正在尝试在我的ASP.NET Webforms应用程序(不使用MVC)中添加可配置的用户权限模块,该模块可由管理员用户配置。我的用户数据库架构如下所示
我希望管理员用户创建角色(UserGroup),为组分配权限并使用其所属的组创建用户。到目前为止,我可以自己做,但我的问题是在创建用户后实现权限的最佳方法是什么。更具体地说,我的母版页上有包含EntityName的菜单,它有查看,添加,编辑,删除子菜单。例如*客户
我希望根据登录用户的权限启用/禁用菜单/子菜单。我还希望限制尝试通过直接输入网址的用户进行导航的用户他未获得许可的页面。
我想指出用户(管理员)应该能够创建一个角色,因此在Web配置文件中没有硬编码的角色名称等。
编辑: - 有一个existing question,但这并没有回答如何通过输入他无法访问的网址来限制用户尝试导航到某个页面。
答案 0 :(得分:0)
protected void Page_Load(object sender, EventArgs e)
{
// Perform The UI Logic
// Assuming That You Are Tracking The User For Each Reqeust In Session["UserID"]
ShowHideMenuOrSubMenu_Role_Your_RoleName(Session["UserID"].ToString());
}
public static void ShowHideMenuOrSubMenu_Role_Your_CRUD_RoleName(string UserID)
{
if (CheckUserRole("Your_CRUD_Role", UserID))
{
//1. Set Your Front End WebForm Control To Disable
//2. Set Your Front End WebForm Control CSS
// Whichever you prefer .
}
}
public static bool CheckUserRole(string Role_CRUD , string UserID)
{
// Go Into DB/Repository/EF Where Your Role/User Setting Is Set .
// Perform Checking
// Assuming The Result Is A Bool Checking Result That You Checked
return Result;
}