--------------------------------------------------LimitAttribute.cs 自定义特性

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;///<summary>///LimitAttribute的摘要说明///</summary>//特性只作用与方法上[AttributeUsage(AttributeTargets.Method)]publicclassLimitAttribute:Attribute{privatestring_name;publicstringName{get{return_name;}}publicLimitAttribute(stringname){this._name=name;}}

--------------------------------------------------Default.aspx

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Reflection;publicpartialclass_Default:System.Web.UI.Page{publicstaticreadonlystring_name="李四";protectedvoidPage_Load(objectsender,EventArgse){}///<summary>///判断该用户是否有执行权限///</summary>///<paramname="name">用户名称</param>///<paramname="method">方法名称</param>///<returns></returns>privateboolIsLimit(stringname,stringmethod){//获取该类型Typet=typeof(_Default);//查找该方法MethodInfomi=t.GetMethod(method);if(mi==null)returnfalse;//获取方法上的特性LimitAttributela=Attribute.GetCustomAttribute(mi,typeof(LimitAttribute))asLimitAttribute;if(la==null)returnfalse;//判断用户if(la.Name==name){returntrue;}else{returnfalse;}}[Limit("张三")]publicvoidbtnView_Click(objectsender,EventArgse){if(IsLimit(_name,"btnView_Click")){ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('我是查看')",true);}else{ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('对不起,您没有权限操作')",true);}}[Limit("李四")]publicvoidbtnEdit_Click(objectsender,EventArgse){if(IsLimit(_name,"btnEdit_Click")){ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('我是修改')",true);}else{ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('对不起,您没有权限操作')",true);}}[Limit("李四")]publicvoidbtnAdd_Click(objectsender,EventArgse){if(IsLimit(_name,"btnAdd_Click")){ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('我是添加')",true);}else{ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('对不起,您没有权限操作')",true);}}[Limit("王五")]publicvoidbtnDel_Click(objectsender,EventArgse){if(IsLimit(_name,"btnDel_Click")){ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('我是删除')",true);}else{ClientScript.RegisterStartupScript(this.GetType(),"ClientScript","alert('对不起,您没有权限操作')",true);}}}