多web站点统一访问授权管理中心系统项目(源码)
现状: 用户一台服务器上有多个 ASP.NET 应用程序,每一个应用都有独自的访问权限管理模块,这些模块原理基本一样
目的:设计开发一个 “访问权限管理中心系统” ,能够管理所有ASP.NET 应用程序的访问权限,统一用户登录界面,用户登录成功后可访问已授权的全部ASP.NET 应用程序 (单点登录), 对现有的 ASP.NET 应用程序 ,尽量不修改源码
可行方案:
假设 权限管理系统命名为 mymag , 2个 ASP.NET 应用程序命名为 asp1 asp2
1 访问权限管理中心系统:
asp.net 系统
统一用户登录界面
用户管理界面
角色管理界面
利用asp.net 自带的 membership roleManager profile 模块能够配置多应用适配器的功能很容易实现多应用程序的用户,角色,访问权限的分布存储和统一管理, 对 membership roleManager profile 不了解的读者请先查阅相关资料。
web config具体配置
membership :
<membership>
<providers>
<clear/>
<add applicationName="mymag" name="mymag" connectionStringName="DefaultConnection" type="System.Web.Security.SqlMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" />
</providers>
</membership>
说明: membership 保存所有登录用户信息,所有只需要一个适配器, applicationName 是访问权限管理中心名称 mymag,name 适配器名称, connectionStringName 数据库连接字符串名称
roleManager :
<roleManager enabled="true" defaultProvider="mymag" >
<providers>
<clear/>
<add name="mymag" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="mymag"/>
<add name="asp1" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="asp1"/>
<add name="asp2" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="asp2"/>
</providers>
</roleManager>
说明:roleManager 用于保存多个asp.net应用程序各自的角色 ,所以需要多个适配器。 applicationName 分别对应 ASP.NET 应用程序名称 ,name 分别对应适配器名称, connectionStringName 数据库连接字符串名称 因本管理系统数据都存放于一个数据库中,所以和 membership的connectionStringName 一一样。 当然也可以使用多个连接字符串将数据保存到不同数据库中,这也是 membership 系统强大之处。不过 放在一起也没问题,只要 applicationName 正确, 角色就不会混乱。
c# 代码 : 用 Roles.Providers 可以读取所有的 role 适配器,也就是 ASP.NET 应用程序名称 ,Roles.Providers["asp1"] 对象中有很多方法,例如: .CreateRole 创建用户 GetAllRoles 获取所有用户 , 等
profile :
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。