如果用户没有权限,如何在登录后从菜单中隐藏Web表单?

时间:2019-03-23 06:25:02

标签: c# asp.net

我使用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表单?

1 个答案:

答案 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...

用户控件更易于访问。.