需要设计几个基于用户类型和权限级别更改的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。
谢谢!
答案 0 :(得分:2)
我建议您为网页创建一个视图模型:
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();
}
}
}