簡體   English   中英

使用背后的代碼在asp.net網絡表單中的角色和用戶管理

[英]Roles and User management in asp.net webforms using code behind

問題 :使用我在數據庫中創建的角色,我希望能夠根據該用戶角色來限制特定用戶的使用。

信息 :我沒有使用MVC方法,只有空的.aspx頁已連接到數據庫以顯示信息等。所提供的表圖像包含了數據庫中的角色/用戶信息角色用戶角色/用戶 理想情況下,我想根據用戶所處的角色從菜單中刪除項目。因此,假設用戶處於“工作人員”角色,則他們只會在aspx頁面菜單上看到2個菜單“控件”或“按鈕”。

嘗試的解決方案 :用戶登錄后在登錄頁面上,Page_Load方法檢查用戶所處的角色並將其發送到相應的頁面。 該解決方案的問題在於,我必須根據用戶所處的角色為每個頁面創建重復項。

問題 :如何使用后面的C#代碼在aspx網絡表單中編輯HTML。

問題2 :是否有一個簡單的解決方案來限制使用,具體取決於用戶的角色,而沒有大量重復的aspx頁。

請讓我知道是否需要更多信息。

菜單是用HTML在aspx表單上創建的,如下所示:

<ul id="centered">
            <li><a href='Welcome.aspx'><span>Home</span></a></li>
            <li class='active has-sub'>
                <a href='#'><span>Sales</span></a>
                <ul>
                    <li class="active has-sub">
                        <a href='#'><span>Sales</span></a>   
                        <ul>
                            <li><a href='Sales.aspx'><span>Create</span></a></li>
                            <li><a href='Sales.aspx'><span>View</span></a></li>
                        </ul>
                    </li>                        
                </ul>
            </li>

您需要將菜單ul標記為runat="server"並為其賦予唯一的ID。

<ul id="centered">
   <li><a href='Welcome.aspx'><span>Home</span></a></li>
   <li class='active has-sub'>
      <a href='#'><span>Sales</span></a>
      <ul>
         <li class="active has-sub">
            <a href='#'><span>Sales</span></a>
            <ul runat="server" id="ul_menu">
               <li><a href='Sales.aspx'><span>Create</span></a></li>
               <li><a href='Sales.aspx'><span>View</span></a></li>
            </ul>
         </li>
      </ul>
   </li>
</ul>

在這里,我更改為<ul runat="server" id="ul_menu">

現在,您可以使用此ID ul_menu並根據用戶角色從后面的代碼中添加項目。 例如 -

protected void Page_Load(object sender, EventArgs e)
{
    PopulateMenu();
}

private void PopulateMenu()
{
    string role = "B";//You can get the role of logged in user from membeship
    StringBuilder txt = new StringBuilder();
    if (role == "A")
    {
        txt.Append("<li><a href='Sales.aspx'><span>Create</span></a></li>");
    }
    if (role == "B")
    {
        txt.Append("<li><a href='Sales.aspx'><span>View</span></a></li>");
    }
    ul_menu.InnerHtml = txt.ToString();
}

暫無
暫無

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

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