2

需要设计几个基于用户类型和权限级别而改变的 ASP.Net Web 表单。

数据库中定义了七种用户类型(ClientType 表,ID = 0-7)。

数据库中将映射回我们的 Web 表单中的控件的所有字段也由具有查看/添加/修改/删除权限的用户类型定义,并存储在数据库中的单独表中。

IE

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 表中的记录然后使用它来确定是否显示/隐藏控件的最佳方法是什么(模式、实践、具体示例),使其只读, ETC。?

注意:我必须使用旧版登录和身份验证,因此此处不能选择 ASP.Net Membership API。

使用 ASP.Net、C# 和 SQL Server。

谢谢!

4

1 回答 1

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();
            }
         }
    }
于 2012-07-17T13:45:35.317 回答