我有一个asp.net 4 webforms项目。我有一个用于管理应用程序中现有用户的表单,但某些用户的某些选项可能会显示为灰色或隐藏,具体取决于他们在应用程序中的角色(管理员,用户等)。例如。管理员可以从下拉列表中更改用户的角色,但普通用户会看到下拉列表变灰(或可能隐藏)。
当然,在回发中我可以有一个很大的功能来检查所有条件,例如“如果用户少于管理员修改属性X,则忽略保存该更改”。对于单个表单,可能存在若干这些检查的列表。
但是在asp.net中有更好的方法来处理这类事情吗?
答案 0 :(得分:0)
可以使用PrincipalPermissions来限制某个方法被特定角色以外的任何人执行
Import System.Security.Permissions
放在方法上方
<PrincipalPermissions(SecurityAction.Demand, role:="Admin")> _
{
{1}}
这不会隐藏用户的控件,但我想你可以将这些特定控件包装在LoginView中,或者以编程方式控制它们的可见性。