母版页:
<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的新手
答案 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()中写下此内容。希望这会有所帮助。