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