在ASP.NET中为不同用户显示不同表单字段的最佳方法是什么?

时间:2009-08-04 09:40:37

标签: asp.net

在ASP.NET中为不同用户显示不同表单字段的最佳方法是什么?

这是一个例子: 我有一个包含TextBox1,TextBox2和TextBox3的表单。 用户A只能看到TextBox1和TextBox3。 用户B只能看到TextBox2和TextBox3。 ...

如果有很多用户或表单字段。编写所有逻辑将太繁琐。 没有手工编码逻辑,有没有优雅的方法来实现这一目标?

4 个答案:

答案 0 :(得分:1)

您可以使用LoginView控件。这是一个很小的how-to

答案 1 :(得分:0)

我喜欢使用面板对相关控件进行分组,但是如果用户组之间的差异很小,打开或关闭控件可见性可能就足够了。

请确保您测试每个不同的方案,因为这通常是测试失败的地方。

如果有很多控件,可能值得动态创建它们。

答案 2 :(得分:0)

如果您使用的是基于角色的授权,则可以在CSLA中编写与ReadWriteAuthorization类似的内容 这是一个扩展器控件,它根据用户能够读取或写入控件绑定的特定属性来启用/禁用/设置只读或清空控件。
这可以增强以显示/隐藏控件。当然,这也意味着您的业务对象需要知道哪些属性可以(或不能)被哪些角色查看。

答案 3 :(得分:0)

另一种可能的方法是在ASP中使用Profile并在Profile中为每个用户存储控件属性。 这样,可以在页面加载期间加载控件属性。 如,

labelPostalCode.Text = Profile.PostalCode;

参考: http://msdn.microsoft.com/en-us/library/taab950e.aspx