惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
B
Blog
WordPress大学
WordPress大学
Project Zero
Project Zero
P
Palo Alto Networks Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
T
Tailwind CSS Blog
Forbes - Security
Forbes - Security
F
Full Disclosure
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hacker News: Ask HN
Hacker News: Ask HN
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Fortinet All Blogs
Cisco Talos Blog
Cisco Talos Blog
G
Google Developers Blog
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
O
OpenAI News
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Cybersecurity and Infrastructure Security Agency CISA
S
Securelist
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
IT之家
IT之家
U
Unit 42
腾讯CDC
S
Security Affairs
C
Cisco Blogs
Schneier on Security
Schneier on Security
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Blog of Author Tim Ferriss

博客园 - Avlee

ArcGIS Server Manager 登录失败的解决方法 利用ArcSDE C API读取ArcSDE Raster数据 倡议以赞助的形式成立一个博客园的开发团队(博客园商业化尚早) 在WebGIS中试用Microsoft Silverlight有感 The MSVC project of the cairo library(version 1.4.6) WebGIS团队启用二级域名 Building the cairo graphic library using msvc Adobe 将停止对Adobe SVG Viewer的支持! SVG Authoring Guidelines[转] ArrayList.ToArray(Type) Or ArrayList.CopyTo(Array) Using Delegates with Data Readers to Control DAL Responsibility[转] 关于旧mdl程序向V8升级的问题 有了Flash和SVG,Adobe还想做什么呢? 基于Geomedia Professional平台的GIS应用开发(一) 如何让英文版的Adobe SVG Viewer显示中文文字 Adobe SVG Viewer 6.0 中自定义右键菜单 过年了,再忙也要回家...... 申请加入 “WebGIS” 团队 WebGIS团队刚刚成立
根据权限创建页面上的功能按钮的一种简单有效的方法
Avlee · 2005-04-02 · via 博客园 - Avlee

根据权限创建页面上的功能按钮的一种简单有效的方法

我们在用Asp.Net设计各种Web系统时,经常要设计页面上各个功能的权限控制。比如有权限就提供某个链接入口,那么如何控制页面上的一些功能按钮的权限呢,除了在页面上根据权限设置显示属性外,我在这里提供一个简单有效的方案供参考。如果大家有更好的改进意见,欢迎交流。

      首先我们可以在系统中为每个模块页面提供一些功能配置信息,包括功能的名称、代码,这些信息很容易和我们通常用的用户角色、权限挂钩了,接着在模块页面的基类中就可以根据权限创建这些按钮或者工具条了,也就省掉了在页面上控制显示的麻烦了。

       那么页面上怎么响应这些事件呢,我们可以让这些功能事件触发时,向页面提供所触发的功能的代码,从而去处理不同的事情了。 

       您可以在这里下载详细实现Demo

       具体实现的一些局部代码如下:


[ParseChildren(true)]
public abstract class BaseLayoutControl : System.Web.UI.UserControl, System.Web.UI.INamingContainer
{
    
private System.Web.UI.WebControls.PlaceHolder _cmdBarHolder;

    
public BaseLayoutControl()
    
{
    }


    
/// <summary>
    
/// 命令工具条的容器控件。
    
/// </summary>

    public PlaceHolder CmdBarHolder
    
{
        
get return this._cmdBarHolder; }
        
set this._cmdBarHolder = value; }
    }


    
protected override void OnInit(EventArgs e) 
    
{
        CreateCommandControls();

        
base.OnInit(e);
    }


    
/// <summary>
    
/// 创建命令按钮。
    
/// </summary>

    protected virtual void CreateCommandControls() 
    
{
        
if (this.CmdBarHolder != null)
        
{
            InitializeLayout(
this.CmdBarHolder);
        }

    }


    
/// <summary>
    
/// 初试化页面布局。
    
/// </summary>
    
/// <param name="layout"></param>

    protected abstract void InitializeLayout(Control holder);
}


[ParseChildren(true)]
public class BaseModuleControl : BaseLayoutControl
{
    
Fields

    
Properties

    
Override methods

    
EventHandler

    
Command Messages
}

模块页面只需要继承BaseModuleControl,并且重写OnCommandButtonClick函数,就可以处理相应的功能了。
当然具体页面必须设置功能按钮显示的位置了。

发表于 2005-04-02 01:31  Avlee  阅读(2107)  评论(0)    收藏  举报

刷新页面返回顶部