ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:95.36KB ,
资源ID:11540845      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11540845.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(扩展NETMEMBERSHIP权限功能.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

扩展NETMEMBERSHIP权限功能.docx

1、扩展NETMEMBERSHIP权限功能扩展ASP.NET MEMBERSHIP权限功能(一 ) 扩展ASP.NET MEMBERSHIP权限功能目前常用的ASP.NET 的membership功能,可以将权限控制到页,需要我们在web.config中进行设置,如果需求稍多一点,你会发现有些力不从心,网上有很多开源的权限管理系统,但差不多都是重新设计开发,所以我这里要做的是在membership的基础上增加 用户组权限到每个页面及按钮的功能,如A组只能新增,他的页面上面就只有新增按钮,B组只能删除和修改 他的界面上就没有新增的功能,即使B组知道新增的URL,进入后也会提示无权限,各个功能都能过后

2、台数据库进行配置,全局来控制。 membership的用法不用多说,下面讲讲思路1. 当用户访问文件目录,读取当前目录下面的web.config2. 根据web.config中的设定每个文件权限,并匹配数据库中的信息,如果符合条件显示按钮或页面,不成立隐藏或提示1.数据库创建表aspnet_Ex_PermissionsForRoles创建视图vw_aspnet_Ex_PermissionsForRoles 创建存储过程aspnet_Ex_GetPermissionByRoles代码 CREATEPROCEDUREdbo.aspnet_Ex_GetPermissionByRolesrolesnv

3、archar(max)=NULL,pathnvarchar(max)=NULLASBEGINSETNOCOUNTON;declaresqlnvarchar(2000)setsql=select*fromvw_aspnet_Ex_PermissionsForRoleswhereRoleNamein(+roles+)andModulePath=+path+ifrolesisnotnullEXECsp_executesqlsqlEND数据库准备完毕下面是结构项目文件结构扩展ASP.NET MEMBERSHIP权限功能(二 ) 前一篇介绍了需求,和数据库结构与和项目结构这一篇主要介绍一下结构和配置ad

4、min下面的web.config EC.Permissions.Config主要是实现了IConfigurationSectionHandler接口,来完成自定义的配置admin/test下面 web.config account test Default.aspx 列表 2 Default.aspx 编辑 16 Default.aspx 删除 32 Ok.aspx 测试 2 1.串行化 web.config EC.Permissions.Config 类usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSyst

5、em.Text;usingSystem.Configuration;usingSystem.Xml;usingSystem.Xml.Serialization;usingSystem.IO;namespaceEC.PermissionspublicclassConfig:IConfigurationSectionHandler#regionIConfigurationSectionHandlerMemberspublicobjectCreate(objectparent,objectconfigContext,System.Xml.XmlNodesection)/EC.Permissions.

6、PermissionInfostringtypeName=(XmlElement)section).GetAttribute(type);Typetype=Type.GetType(typeName);XmlSerializerxz=newXmlSerializer(type);using(StringReadersr=newStringReader(section.OuterXml)returnxz.Deserialize(sr);#endregion2.EC.Permissions.PermissionInfo类usingSystem;usingSystem.Collections.Gen

7、eric;usingSystem.Linq;usingSystem.Text;usingSystem.Xml.Serialization;namespaceEC.PermissionsSerializableXmlRoot(Permission)publicclassPermissionInfo/权限数据库ID/publicintPermissionIdget;set;/用户组ID/publicstringRoleIdget;set;/用户组名/publicstringRoleNameget;set;/模块路径/XmlElement(ModulePath,typeof(string)publi

8、cstringModulePathget;set;/模块名字/XmlElement(ModuleName,typeof(string)publicstringModuleNameget;set;/权限值/publicPermissionTypePermissionValueget;set;XmlArrayItem(Item,typeof(PermissionItemInfo)publicPermissionItemInfoItemsget;set;SerializableXmlRoot(Items)publicclassPermissionItemInfoXmlElement(Page,typ

9、eof(string)publicstringPageget;set;XmlElement(Function,typeof(string)publicstringFunctionget;set;XmlElement(Val,typeof(int)publicintValueget;set;publicoverrideboolEquals(objectobj)if(obj=null)returnfalse;if(this.GetType()!=obj.GetType()returnfalse;if(PermissionItemInfo)obj).Page=this.Page)returntrue

10、;returnbase.Equals(obj);/权限类型/publicenumPermissionTypeALL=0,LIST=2,VIEW=4,ADD=8,EDIT=16,DELETE=32,PRINT=643.EC.Permissions.DAL 数据库访问usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections;usingSystem.Web.Security;usingSystem.Data;usingEC.DBUtility;usingS

11、ystem.Data.SqlClient;usingSystem.Configuration;usingSystem.Web;namespaceEC.PermissionspublicclassDALprivatestaticDataAccessManagerdataAccessManager=newDataAccessManager();/判断页面是否有此权限/1.得到当前用户所有的用户组/2.得到所有用户组的权限并取并集/publicstaticboolCheckPage()boolbResult=false;PermissionInfopi=GetPermissionInfo;if(pi

12、=null)returntrue;Hashtableht=GetPermissionsByRole();if(ht.Count0)stringkey=string.Format(M-0,FolderPath);if(ht.ContainsKey(key)stringfilename=GetFileName;/拆箱取出并判断权限PermissionInfoht_PermissionInfo=(PermissionInfo)htkey;foreach(PermissionItemInfotempinpi.Items)if(temp.Page.ToLower().Equals(filename)&(

13、Convert.ToInt32(ht_PermissionInfo.PermissionValue)&temp.Value)=temp.Value)bResult=true;break;returnbResult;/判断按钮是否有此权限/1.得到当前用户所有的用户组/2.得到所有用户组的权限并取并集/publicstaticboolCheckButton(PermissionTypetype)boolbResult=false;Hashtableht=GetPermissionsByRole();if(ht.Count0)stringkey=string.Format(M-0,FolderPa

14、th);if(ht.ContainsKey(key)/拆箱取出并判断权限PermissionInfoht_PermissionInfo=(PermissionInfo)htkey;bResult=(ht_PermissionInfo.PermissionValue&type)=type;returnbResult;/当前目录/publicstaticStringFolderPathgetstringpaths=HttpContext.Current.Request.ServerVariablesSCRIPT_NAME.ToString();returnpaths.ToLower();/获取当前

15、访问页面地址/publicstaticstringGetFileNamegetstringpaths=HttpContext.Current.Request.ServerVariablesSCRIPT_NAME.ToString();returnpaths.Substring(paths.LastIndexOf(/)+1).ToLower();/获取当前目录下权限配置集合/publicstaticPermissionInfoGetPermissionInfogetreturn(PermissionInfo)ConfigurationManager.GetSection(Permission);

16、/得到所有用户组的权限并取并集/publicstaticHashtableGetPermissionsByRole()Hashtableht=newHashtable();stringrolesArr=Roles.GetRolesForUser();stringroles=string.Join(,rolesArr);roles=+roles+;SqlParameterparms=newSqlParameter2;parms0=newSqlParameter(roles,SqlDbType.NVarChar);parms0.Value=roles;parms1=newSqlParameter(

17、path,SqlDbType.NVarChar);parms1.Value=FolderPath;/读取用户组的所有权限using(IDataReaderdr=dataAccessManager.ReadDatabase.ExecuteSpReader(aspnet_Ex_GetPermissionByRoles,parms)while(dr.Read()PermissionInfopermissioninfo=newPermissionInfo();permissioninfo.PermissionId=Convert.ToInt32(drPermissionId);permissioninfo.RoleId=Convert.ToString(drRoleId);permissioninfo.ModulePath=Convert.ToString(drModulePath

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2