根据用户角色,应启用和禁用母版页超链接



主页面:

<body>
<form id="form1" runat="server">
<div>
   <div id="wrapper">
    <div id="menu">
    <ul>
        <li >
        </li>
        <li >
            <asp:HyperLink ID="HyperLink1" runat="server" href="Home.aspx">Home</asp:HyperLink>
        </li>
        <li>
        <asp:HyperLink ID="HyperLink2" runat="server" href="#">Scan-REQUEST</asp:HyperLink>
                  <ul>
                       <li>
                           <asp:HyperLink ID="HyperLink3" runat="server">IP-REQUEST</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink4" runat="server" href="E-scan-request-op.aspx">OP-REQUEST</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink5" runat="server" href="E_scan_request_EM.aspx">EM-REQUEST</asp:HyperLink>
                       </li>
                  </ul>
        </li>
        <li>
        <asp:HyperLink ID="HyperLink6" runat="server" href="#">scheduler</asp:HyperLink>
                 <ul>
                       <li>
                           <asp:HyperLink ID="HyperLink9" runat="server">Scheduler</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink10" runat="server" href="view_scheduled.aspx">SCHEDULED</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink22" runat="server" href="TIME_SLOTS.aspx">time-slot</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink7" runat="server" href="queug.aspx">Q-View</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink8" runat="server">Q-LCD</asp:HyperLink>
                       </li>
                  </ul>
        </li>
        <li>
            <asp:HyperLink ID="HyperLink11" runat="server" href="#">BILLING</asp:HyperLink>
            <ul>
            <li>
                <asp:HyperLink ID="HyperLink12" runat="server" href="billing_page.aspx">BILL</asp:HyperLink>

            </li>
            </ul>
            </li>
        <li>
            <asp:HyperLink ID="HyperLink13" runat="server" href="#">SCAN-REPORT</asp:HyperLink>
            <ul>
                       <li>
                           <asp:HyperLink ID="HyperLink14" runat="server" href="US_9A_ROOM.aspx">US_9A</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink15" runat="server" href="US_9B_ROOM.aspx">US_9B</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink16" runat="server" href="US_10A_ROOM.aspx">US_10A</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink17" runat="server" href="US_10B_ROOM.aspx">US_10B</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink18" runat="server" href="US_12A_ROOM.aspx">US_12A</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink19" runat="server" href="US_12B_ROOM.aspx">US_12B</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink21" runat="server" href="PORTABLE.aspx">PORTABLE</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink20" runat="server" href="E_REPORT_READING.aspx">E-REPORTS</asp:HyperLink>
                       </li>
           </ul>
        </li>
        <li>
            <asp:HyperLink ID="HyperLink23" runat="server" href="#">About Us</asp:HyperLink>
             <ul>
                  <li>
                           <asp:HyperLink ID="HyperLink24" runat="server" href="help_menu.aspx">Help</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink25" runat="server" href="#">Contact</asp:HyperLink>
                           <asp:HyperLink ID="HyperLink26" runat="server" href="#">Support</asp:HyperLink>

                  </li>
             </ul>
        </li>
    </ul>
</div>
 <asp:HyperLink ID="HyperLink27" runat="server" ForeColor="White" 
        NavigateUrl="~/Login.aspx">[Sign in]</asp:HyperLink>
</div>

MasterPage.cs文件:

protected void Page_Load(object sender, EventArgs e)
    {
        string role=(string)(Session["userauthentication"]);
        if (Session["userauthentication"] != null)
        {
            HyperLink3.NavigateUrl = "E_scan_request_IP.aspx";
            HyperLink9.NavigateUrl = "scheuler_innovation.aspx";
        }
        else if (Session["userauthentication"] != null)
        {
            HyperLink3.NavigateUrl = "E_scan_request_IP.aspx";
        }
        else if (Session["userauthentication"] != null)
        {
            HyperLink9.NavigateUrl = "scheuler_innovation.aspx";
        }
    }

登录页面cs:

protected void Button1_Click(object sender, EventArgs e)
    {
        string role = DropDownList1.Text;
        string username = TextBox1.Text;
        string password = TextBox2.Text;
        con.Close();
        con.Open();
        cmd = new SqlCommand("select * from schedule_login where Role='" + DropDownList1.Text + "' and Username='" + TextBox1.Text + "' and Password='" +TextBox2.Text + "'",con);
        rd = cmd.ExecuteReader();
        if (rd.Read())
        {
            Session["userauthentication"] = role;
            Session.Timeout = 1;
            Response.Redirect("Home.aspx");
        }
        else
        {enter code here
            Session["userauthentication"]="";
        }
    }

根据不同的超链接应该被启用和禁用,有不同的角色。。。我在母版页中遇到问题,而它没有存储会话指令角色=(字符串)(会话["userauthentication"]);请帮我做这件事,因为我是asp.net 的新手

这可能是由于

 string role = DropDownList1.Text;

将其更改为

string role = DropDownList1.SelectedItem.Text;

MasterPage中的PageLoad在Button1_Click事件执行之前执行,这就是为什么MasterPage没有根据Session["userauthentication"]的新值执行。您可以通过再次单击按钮1_Click来验证这一点。

您需要在MasterPage.cs中创建一个公共方法,如SetRole(),并从Button1_Click()中的Login.aspx.cs调用此函数

您可以从子页访问母版页的此SetRole()方法:

SiteMaster.Master pageMaster = this.MasterPage as MainMaster;
if(pageMaster != null)
{
    pageMaster.SetRole();
}

将此内容写在按钮_Click()中。希望这会有所帮助。

最新更新