簡體   English   中英

會話驗證母版頁(?)asp.net c#

[英]session verification masterpage (?) asp.net c#

我有兩個按鈕的空白頁。

第一個按鈕的點擊代碼是這樣的:

Session["permissionUser"] = "1";

這是第二個按鈕代碼:

Session["permissionUser"] = "2";

然后我有一個超鏈接,它會重定向到“主要”網站。

我的目標是根據會話中保存的權限調整母版頁上的菜單欄。 這是我在母版頁中的代碼的一部分:

<body>
<div id="menuBar">
<a href="../Default.aspx">Home</a>
<% if (Session["permissionUser"] == "1"){ %>
<a href="#">PERMISSION 1 LINK</a>
<% } %>
<% if (Session["permissionUser"] == "2"){ %>
<a href="#">PERMISSION 2 LINK</a>
<% } %>
</div>

<div id="content">
<asp:ContentPlaceHolder ID="websiteContent" runat="server"></asp:ContentPlaceHolder>
</div>
</body>

問題是當我運行該應用程序時,即使我單擊任何按鈕,菜單也完全不適應。 它僅顯示超鏈接“主頁”,而不顯示任何其他應顯示的超鏈接,因為會話為1或2(取決於我單擊的按鈕)

我真的看不到我在做什么錯,所以如果你們有什么建議,我將非常感激

您的代碼非常PHPish。 也就是說,這很丑。 而且笨拙。 讓我們將邏輯放在代碼后面。 我們還需要一個表單,以便我們可以在服務器上運行控件。

public void Page_Load(object sender, EventArgs e)
{
    //you should probably also check to make sure the session has "permissionUser" in it
    if (Session["permissionUser"] == "1")
    {
        Permission1HL.Visible=true;
    }
    else if(Session["permissionUser"] == "2")
    {
        Permission2HL.Visible=true;
    }
}

並將您的ASPX頁面更改為此。

<body>
<form runat="server">
<div id="menuBar">
<a href="../Default.aspx">Home</a>
<asp:HyperLink runat="server" id="Permission1HL" Text="Permission 1 Link" Visible="false" />
<asp:HyperLink runat="server" id="Permission2HL" Text="Permission 2 Link" Visible="false" />
</div>

<div id="content">
<asp:ContentPlaceHolder ID="websiteContent" runat="server"></asp:ContentPlaceHolder>
</div>
</form>
</body>

我實際上在if語句中會更具體

<% if (Session["permissionUser"].toString() == "1"){ %>

空檢查

<% if (Session["permissionUser"] != null && Session["permissionUser"].toString() == "1"){ %>

我建議您改用服務器端超鏈接控件,並從代碼隱藏中設置文本和Navigationurl

<asp:HyperLink id="hyperlink1" 
              NavigateUrl="http://mydefaulturl.com"
              Text="DefaultText"
              runat="server"/>

從后面的代碼:

if (Session["permissionUser"] == 1)
{
  hyperlink1.NavigateUrl = "#"
  hyperlink1.Text = "Permission 1 link"
}...

這將使您能夠更好地控制和調試值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM