需要设计几个根据用户类型和权限级别而变化的 ASP.Net Web 表单。
数据库中定义了七种用户类型(ClientType 表,ID = 0-7)。
数据库中将映射回 Web 表单中的控件的所有字段也由具有查看/添加/修改/删除权限的用户类型定义,并存储在数据库中的单独表中。
即
tbl_FieldAccess
FieldName = Client_Name (Client Name Field in our Client Table)
ClientType = 1
View = 1
Add = 0
Modify = 0
Delete = 0
FieldName = Client_Name ClientType = 7
View = 1
Add = 1
Modify = 1
Delete = 1
现在采用我的实际 Web 表单控件并将它们映射到我的 tbl_FieldAccess 表中的记录,然后使用它来确定是否显示/隐藏该控件的最佳方法是什么(模式、实践、具体示例),使其只读等?
注意:我必须使用旧版登录和身份验证,因此 ASP.Net Membership API 在此不适用。
使用 ASP.Net、C# 和 SQL Server。
谢谢!
最佳答案
我建议您为页面创建 View 模型:
class MyPageViewModel
{
public bool SendButtonVisible { get; set; }
public bool EditButtonEnabled { get; set; }
// many other properties ...
public YourData Data { get; set; }
}
那么你的 aspx 看起来像:
<asp:Button Id="btnSend" runat="server" Visible='<%# Model.SendButtonVisible" %>' />
以及你的代码:
public class YourPage : Page
{
public MyPageViewModel Model
{
get { return (MyPageViewModel )ViewState["Model"]; }
set { ViewState["Model"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// put all business logic in your service layer
Model = YourServiceClass.GetMyPageViewModel();
DataBind();
}
}
}
关于asp.net - 基于权限的动态Web表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523509/