[英]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.