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

推荐订阅源

T
Tenable Blog
H
Heimdal Security Blog
K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Schneier on Security
G
GRAHAM CLULEY
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
C
Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
V
Visual Studio Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Jina AI
Jina AI
P
Proofpoint News Feed
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
S
Security Affairs
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
N
News | PayPal Newsroom
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU

博客园 - 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)    收藏  举报

刷新页面返回顶部