我使用ASP.NET c#构建了一个网站项目,该项目包含约30个Web表单,然后我创建了用户组,每个用户都可以根据自己的角色访问某些Web表单,然后例如将屏幕添加到组中预订员工组将访问预订Web表单,经理组将访问所有Web表单和屏幕,依此类推,现在,我创建了以下checkrole void,并将其放在page_load中,以检查用户是否在其组下拥有此Web表单,然后他可以访问该窗口,否则将重定向到主页。
这是CheckRole无效:
void CheckRoles()
{
if (Session["userid"] == null)
{
Response.Redirect("/LoginPage.aspx");
}
string user_id = Session["userid"].ToString();
string group_id = func.firesql("select [user_kind_id] from [Users_web] where user_id = '" + user_id + "'");
string page_current = Request.Url.PathAndQuery.ToString().ToLower();
string sql = @"SELECT [page_name] FROM [permission_pages] where [group_id]='" + group_id + "' and page_name = '" + page_current + "'";
string role = func.firesql(sql);
if (role == "")
{
Response.Redirect("/admin/home.aspx");
}
}
这个空白与我一起工作,但是登录后我现在需要检查用户组以及包括哪些Web表单,并仅显示允许用户访问的Web表单,并从菜单中隐藏其他窗口。
我该如何做,并在登录后仅显示授予的Web表单并在菜单中隐藏其他Web表单?
答案 0 :(得分:0)
首先为所有网络表单创建母版页
将每个页面按类别或角色划分
<div id="rol1" runat="server">
<page1>
<page2>
<page3>
</div>
<div id="rol2" runat="server">
<page1>
<page2>
<page3>
</div>
Or Second Way
Create UserControls based On role
Role Admin
page1,page2..
Role User
page3,page...
用户控件更易于访问。.