asp.net网站权限设计实现(二)角色权限绑定

上传人:博****1 文档编号:504438895 上传时间:2022-08-02 格式:DOCX 页数:39 大小:38.53KB
返回 下载 相关 举报
asp.net网站权限设计实现(二)角色权限绑定_第1页
第1页 / 共39页
asp.net网站权限设计实现(二)角色权限绑定_第2页
第2页 / 共39页
asp.net网站权限设计实现(二)角色权限绑定_第3页
第3页 / 共39页
asp.net网站权限设计实现(二)角色权限绑定_第4页
第4页 / 共39页
asp.net网站权限设计实现(二)角色权限绑定_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《asp.net网站权限设计实现(二)角色权限绑定》由会员分享,可在线阅读,更多相关《asp.net网站权限设计实现(二)角色权限绑定(39页珍藏版)》请在金锄头文库上搜索。

1、ASP.NET网站权限设计实现(二)角色权限绑定1、关于使用的几张表的说明(1)Module:模块表,记录模块名称、编码等模块基本数据。(2)Permissions:权限表,记录所有模块权限distinct之后的数据。(3)ModulePermissions:模块权限,记录每个模块对应的权限,一个模块可能存在多条数据,每条表示该模块的一个操作权限。(4)Roles:角色表,记录角色名称、编码等角色基本数据。(5)RolePermissions:角色权限表,记录每个角色对应的权限,一个角色可能存在多条数据,每条数据表示该角色在某个模块的一个操作权限;表中的数据其实记录的是角色编码跟ModuleP

2、ermissions表中的主键对应,表ModulePermissions中特定主键的数据行就表示了某个模块的一个操作权限。(6)SUser:用户表,记录用户名等用户基本信息。(7)UserRole:用户角色表,记录每个用户对应的角色,可以是多个,但本例只设置对应一个,只要用户具有了某个角色,那么该用户就具有了和角色一样的权限。2、关于PowerDesigher:上一篇介绍了初次在数据库生成表的过程,实际上还可以实现更新和逆向操作(根据数据库中的表在PD中生成表模型)。3、模拟数据(1)表Module3)表ModulePermissions4、角色分页显示和删除这里实现功能的代码基本都是最初级的

3、代码,后面另一个版本会在架构、UI、代码等方面进行较大的改进;另外这里的代码纯粹是演示,不会考虑注入、异常等方面的处理。(1)分页显示数据直接使用GridView了(2)在列表页面可以全选本页数据一次性删除,全选/全取消使用JQuery实现,选中时将值(这里是角色编码)保存在一个隐藏域中,隐藏域中的值的格式:值1,值2,.(数据库中的RoleCode列的数据类型是nvarchar);取消选中时将隐藏域中的值清空;单行CheckBox选中/取消时,将当前行的值追加到隐藏域的值或从隐藏域的值中移除当前行的值。删除时先判断隐藏域的值是否为空,如果为空提示”选中数据“,如果不为空提示”确定删除吗?“,

4、确认删除后,根据隐藏域中的值构造delete语句(使用in子句)将数据删除。3)代码Index.aspx<%PageLanguage=C#AutoEventWireup=trueCodeFile=Index.aspx.csInherits=Role_Index%><!DOCTYPEhtmlPUBLIC-/W3C/DTDXHTML1.0Transitional/ENhttp:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd><htmlxmlns=http:/www.w3.org/1999/xhtml><h

5、ead><title>角色管理</title><scripttype=text/javascriptsrc=./Scripts/jquery-1.4.1.min.js></script><scripttype=text/javascript>/全选/取消CheckBoxfunctionCheckAll(cbAllId)varkeys=$(#txtKeys).val().val();/遍历页面中所有CheckBox,/根据GridView头中CheckBox的checked值设置所有CheckBox的checked值,/同时,如果

6、Header中CheckBox为选中则获取所有其他CheckBox的值(角色编码),/构造:值,值,.格式的字符串,方便in查询,/如果Header中CheckBox的Checked值为false则清空txtKeys中的值$(:checkbox).each(function()/设置当前遍历到的CheckBox的选中状态跟“全选heckBox一样$(this).attr(checked,$(#cbAll).attr(checked);/如果当前CheckBox选中,将值追加到隐藏域的valuevarcbValue=+$(this).val()+,;if($(#cbAll).attr(check

7、ed)&&$(this).attr(id)!=cbAll)keys+=cbValue;);$(#txtKeys).val(keys);/单行选择functionCheckRow(cb)varkeys=$(#txtKeys).val();varcbValue=+$(cb).val()+,;/移除if(!$(cb).attr(checked)keys=keys.replace(cbValue,);elseif(keys.indexOf(cbValue)=-1)/追加keys+=cbValue;$(#txtKeys).val(keys);/删除时检查是否选中任何记录,如果是让用户确认

8、删除操作functionConfirmDel()if($(#txtKeys).val().length=0)alert(请先选择要删除的数据);returnfalse;elsereturnconfirm(确定要删除选中的数据吗?);</script></head><body><formid=form1runat=server>请输入角色名称:<asp:TextBoxID=txtKeywordrunat=serverWidth=301px></asp:TextBox><asp:ButtonID=btnQueryruna

9、t=serverText=查询onclick=btnQuery_Click/><!-存储选中项的值列表,以“,”间隔,删除时直接取值构造SQL-><asp:HiddenFieldID=txtKeysrunat=serverEnableViewState=false/><div><asp:GridViewID=gvRolerunat=serverAutoGenerateColumns=FalseEnableModelValidation=TrueWidth=100%AllowPaging=TrueDataKeyNames=RoleCodeOnPag

10、eIndexChanging=gvRole_PageIndexChangingOnRowDataBound=gvRole_RowDataBoundPageSize=4><asp:TemplateField><HeaderTemplate><inputid=cbAlltype=checkboxonclick=CheckAll();/></HeaderTemplate><ItemTemplate><inputid=cbRowvalue=<%#Eval(RoleCode)%>type=checkboxonclick=

11、CheckRow(this);/></ItemTemplate><ItemStyleWidth=30px/></asp:TemplateField><asp:BoundFieldHeaderText=序号HeaderStyle-Width=50pxItemStyle-Width=50px><HeaderStyleWidth=50px></HeaderStyle><ItemStyleWidth=50px></ItemStyle></asp:BoundField><asp:Bou

12、ndFieldDataField=RoleNameHeaderText=角色名称/>DataField=RoleCodeHeaderText=角色编码/><asp:HyperLinkFieldText=编辑HeaderStyle-Width=50pxItemStyle-Width=50pxDataNavigateUrlFields=RoleCode,RoleNameDataNavigateUrlFormatString=Edit.aspx?RoleCode=0&RoleName=1><HeaderStyleWidth=50px></Header

13、Style><ItemStyleWidth=50px></ItemStyle></asp:HyperLinkField></Columns><EmptyDataTemplate>没有数据。</EmptyDataTemplate><PagerSettingsPosition=TopAndBottom/></asp:GridView></div><asp:HyperLinkID=hlNewrunat=serverNavigateUrl=/Role/Edit.aspx>新增&

14、lt;/asp:HyperLink>&nbsp;|&nbsp;<asp:LinkButtonID=lbDeleterunat=serverOnClientClick=returnConfirmDel();onclick=lbDelete_Click>删除</asp:LinkButton></form></body></html>说明:$(#txtKeys):JQuery得到ID为txtKeys的元素$(#txtKeys).val();:获得ID为txtKeys的元素的值$(#txtKeys).val();:设置ID为txtKeys的元素的值,这里是空字符串$(:checkbox).each(function();:遍历当前文档中CheckBox类型的元素,并在function中进行处理$(this).attr(checked);:获得当前遍历到的CheckBox的checked属性的值$(this).attr(checked,$(#cbAll).attr(checked);:设置当前CheckB

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号