基于角色的启用/禁用asp.net中的控件
|
目前我正在开发一个项目,其中有四个角色的用户可以访问相同的页面(有很多页面,每个页面有近80-90个控件:(). 要求是,根据每个角色,用户应该能够查看每个页面中的特定控件(即,一个角色可见的控件不需要对其他角色可见). 任何人都可以给我最好的方法,这将是强大的,维护良好的代码.(jQuery,Javascript解决方案也将做..) 解决方法这是去年点击我心中的一个非常好的问题..这是我提出的,它有点冗长,但我希望这可以帮助..首先,你必须看看Asp.net中的ControlAdapters. http://www.asp.net/cssadapters/WhitePaper.aspx 概述: 在asp.net页面尝试这样的事情 <asp:TextBox ID="TextBox1" runat="server" CRAN="1"></asp:TextBox> 这里CRAN是我的自定义属性,1是可以在页面上访问此控件的roleid. 现在是时候创建一个控制适配器,它将根据角色启用/禁用此控件. public class TextBoxAdapter:
System.Web.UI.WebControls.Adapters.WebControlAdapter
{
protected override void OnLoad(EventArgs e)
{
if (this.Page is ISecurable)
{
WebControl tb = this.Control as WebControl;
string roles = tb.Attributes[Constants.ControlRoleAttributeName];
bool result = true;
if (!string.IsNullOrEmpty(roles))
{
result = false;
string[] role = roles.Split(',');
foreach (string r in role)
{
if (Roles.IsUserInRole(r))
{
result = true;
}
}
}
tb.Enabled = result;
//tb.BackColor = Color.Red;
}
base.OnLoad(e);
}
}
这是我创建的控件适配器,它将根据角色启用/禁用控件.你可以修改这个显示/隐藏控件. 您必须在.browser文件中的asp.net的App_Browser文件夹中注册此控件适配器 <browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType ="System.Web.UI.WebControls.TextBox" adapterType="MyProject.ControlAdapter.TextBoxAdapter" />
</controlAdapters>
</browser>
</browsers>
结论: 问候. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 使用Jquery Ajax渲染部分视图与变量数据
- asp.net – 可以从Web API访问HttpContext.Current.Session
- ASP.NET成员提供程序 – 单一登录
- asp.net-mvc – 在MVC3中的错误 – 请求永远不会超时 在同一
- asp.net-mvc – ASP.NET MVC – 向ActionLinks添加querystr
- asp.net-mvc-3 – 从IIS7中的虚拟目录运行ASP.NET MVC应用程
- asp.net – 如何停止RadioButtonList标签文本从按钮下包装
- 如何发现ASP.NET应用程序重启的原因
- ASP.NET自定义用户控件动态添加
- asp.net – 类似于CMS的Web应用程序帮助框架?
- oauth-2.0 – 覆盖AccessTokenExpireTimeSpan
- asp.net – HttpError iis config在添加默认路径
- asp.net-mvc – asp.net mvc wiki
- VS 2015 Update 2 – 调试时不存在变量,为什么?
- asp.net – JSON在IE7中未定义
- asp.net – 在新的VS 2013 Identity UserManager
- 使用HtmlAnchor或ASP.NET HyperLink作为导航页内
- asp.net-mvc-3 – Html.RenderPartial和Ajax.Beg
- asp.net – CSRF验证令牌:会话ID安全吗?
- asp.net – $.post vs $.ajax
