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

时间:2013-12-05 06:43:38

标签: c# asp.net

母版页:

<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>

Master Page.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"]="";
        }

    }

根据应该启用和禁用不同的超链接,有不同的角色... 我在主页面遇到问题而它没有存储会话instring role =(string)(Session [“userauthentication”]); 请帮助我,因为我是asp.net的新手

2 个答案:

答案 0 :(得分:0)

可能是由于这个

 string role = DropDownList1.Text;

将其更改为

string role = DropDownList1.SelectedItem.Text;

答案 1 :(得分:0)

MasterPage中的PageLoad正在执行Button1_Click事件之前执行,这就是为什么母版页不符合Session [“userauthentication”]的新值的原因。您可以通过再次单击Button1_Click来验证这一点。

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

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

SiteMaster.Master pageMaster = this.MasterPage as MainMaster;

if(pageMaster != null)
{
    pageMaster.SetRole();
}

在Button1_Click()中写下此内容。希望这会有所帮助。