统一身份认证子系统详细设计与部分实现

** 目 ** ** ** ** 录 ** ** **

一、摘要………………………………………………………………………… 1

二、引言………………………………………………………………………… 1

三、 需 求 分 析

( 1 )系统的功能要求 ……………………………………………………… 2

( 2 )系统的性能要求 ……………………………………………………… 2

( 3 )运行环境要求 ………………………………………………………… 2

( 4 )开发工具简介 ………………………………………………………… 2

四、总体设计

( 1 )系统模块划分 ………………………………………………………… 2

( 2 )系统用例图 …………………………………………………………… 3

( 3 )整个系统包图 ………………………………………………………… 4

五、详细设计

(1)整个系统中各个类的静态结构及相互关系 …………………………… 4

( 2 ) RoleSystem 序列图 ……………………………………………………… 6

( 3 ) SiteSystem 序列图 ……………………………………………………… 7

( 4 ) UserSystem 序列图 ……………………………………………………… 9

六、小结………………………………………………………………………… … 11

七、致谢 ……………………………………………………………………… …… 12

八、参考文献…………………………………………………………………… … 12 ** **








** 统一身份认证子系统详细设计与部分实现 ** ** **

郑天明

西南师范大学计算机与信息科学学院重庆 400715

** 摘要: ** 统一身份认证子系统( UIA 子系统) 统一管理用户和 Internet 内各个分管理系统(成员站点)。 每个注册的用户拥有统一的网络账户(用户名 / 密码),用户通过同一个用户名 / 密码,可以访问所有 Internet 上的网络应用系统(成员站点),为用户应用提供统一身份认证和单点登录服务。 该论文主要内容包括该系统需求分析、总体设计、商务外观层和商务逻辑层的详细设计。

** Abstract: ** Unique Identity Authentication system (UIA ) manage user and campus each in charge of speaking to the system (member site ) in unison. Each registered network user has unified network accounts (user name / the password), users can visit the network application system(member site) in the garden through the same user name / the password, offer for the thing that users use and unify identity authentication and some single log-in services. This thesis main content include this system demand analyse , overall design , detailed design to BusinessFacade and BusinessRules.

** 关键词: ** 用户,成员站点,用户角色

** 一 、引言 ** ** **

对于 Internet 上的各个应用系统,用户使用时必须在每个系统中都注册,登陆,比较麻烦,同时 也容易造成混乱,更带来数据资源的重复存储。因此需要一个专门的系统对用户进行统一管理,即用户只需要注册登陆一次就可以使用各不同应用系统。当然对于各个不同的应用系统,为了用户的使用方便,也对其进行一个逻辑上的统一管理。因此开发统一身份认证子系统是很有必要的。当应用系统注册到在统一身份认证子系统后,我们称之为成员站点。

对用户的统一管理,一方面用在访问各个成员站点时无需多次注册登陆,既给用户的使用带来方便,也为成员站点节约资源,避免各个成员站点分散管理统一用户带来的数据冗余。另一方面也给新的成员站点(新的应用系统)的开发提供方便。

对成员站点进行统一管理,一方面给用户的操作带来方便,即用户登陆统一身份认证子系统后就可以直接通过链接对各成员站点进行访问。另一方面对于成员站点只需要在该系统中注册时给出不同用户的权限类型,便可对各类用户进行权限控制,由该系统完成对用户的权限分配。

由小组在组长王云的带领下讨论完成需求分析和总体设计(模块划分)工作,由我负责商务外观层和商务逻辑层代码编写工作。

** 二、需求 分析: **


** ( 1 )系统功能要求 **

统一身份认证子系统要实现两大功能,一是对用户和系统的身份认证,二是对用户与成员站点之间的权限控制。通过用户的身份和成员站点对用户的权限分配用户可在该系统中获得访问某成员站点的权限,通过系统的身份和用户对成员站点的权限控制,成员站点可在该系统中获得察看用户信息的权限。

** ( 2 )系统性能要求 **

统一身份认证子系统将会管理海量的用户和成员站点信息,这对子系统的性能要求很高,同时多网络的性能要求也很高,所以要求子系统首先要有容量很大的存储设备,同时要求有较大的带宽,保证大量用户在访问时不会发生网络阻塞。

** ( 3 )运行环境要求 **

.NET 平台, SQLSERVER 数据库, IIS 服务器

** ( 4 )开发工具简介 **

Microsoft SQL Sever 是高性能客户/服务器关系数据库管理系统。有许多重要的新特性,如透明分布式处理、简明管理、基于对象嵌入与链接技术 (0LE) 的程序设计接口,以及与 Internet 的集成等,选择 Microsoft SQL Sever 最重要的原因是它的可扩展性和较高的安全性。因为 Microsoft SQL Sever 是基于多线程序并行数据库内核,它能够发挥附加处理器的优势,在许多情况下,只有使用特定的并行数据库和操作系统才能获得对对称多处理技术的支持;当然它还具备很高的安全性,对用户资料进行有效的保护。

** 三 、 ** ** 总体设计 **


** ( 1 )统一身份认证子系统模块划分 **

统一身份认证子系统主要有两大功能模块:身份认证模块和权限管理模块。

身份认证模块管理用户身份和成员站点身份。向用户提供在线注册功能,用户注册时提供必须信息(如用户名、密码)该信息即为用户身份的唯一证据,拥有该信息的用户即为统一身份认证子系统的合法用户;身份认证模块还向成员站点提供在线注册功能,成员站点注册时需提供一些关于成员站点的基本信息,还包括为用户定义的角色种类(如普通用户、高级用户、管理员用户)。

权限管理模块主要有:成员站点对用户的权限控制、用户对成员站点的权限控制、成员站点对成员站点的权限控制。用户向某成员站点申请分配权限时,需向该成员站点提供他的某些信息,这些信息就是用户提供给成员站点的权限,而成员站点通过统一身份认证子系统身份认证后就可以查询用户信息,并给该用户分配权限,获得权限的用户通过子系统身份认证后就可以以某种身份访问该成员站点。成员站点对成员站点的权限控制主要是成员站点控制向其它成员站点提供的调用接口。

统一身份认证子系统还包括系统维护模块和使用帮助模块,系统维护模块主要功能是成员站点的管理和对系统数据的维护。

统一身份认证子系统还提供一套 SDK ,供各成员站点开发时使用。如用户访问某成员站点时,子系统提供返回用户权限的函数 , 供成员站点调用。


** ( 2 )系统用例图: **

![](http://dev.csdn.net/article/58/C:/Documents and Settings\wy\桌面\7.JPG)

用户可以进行单点登陆,也就是用户通过统一身份认证子系统的身份认证后,就可以访问子系统的所有该用户拥有权限的成员站点,用户在访问完一个站点后,不需要再次通过认证就可以访问他拥有权限的成员站点,同时系统向成员站点返回他相应的访问权限;集中式授权控制是用户向成员站点授权,用户在向站点申请权限时,提供想让站点看到的信息,即向成员站点授权;成员站点也向用户授权,用户向站点申请权限后,站点就可以为该用户开通,用户就获得了在该站点的权限;还为成员站点提供管理功能,包括管理其基本信息和其成员用户的权限,包括为用户开通权限,禁用用户的权限 。


** ( 3 )整个系统的包图: **


![](http://dev.csdn.net/article/58/C:/Documents and Settings\wy\桌面\8.JPG)

主要说明了在开发时所用的开发方式: .NET 层次化开发,也就是微软推荐的开发方式。主体部分主要有三个层:商务逻辑层、商务外观层、数据库访问层。其中商务外观层主要定义一些基本的操作,可以调用商务逻辑层,也可以调用数据库访问层和 Model 层,商务逻辑层主要是定义一些操作的规则,可以调用数据库访问层和 Model 层,数据库访问层主要是具体的对数据库的操作,可以调用 Model 层,通过这种层层调用来实现系统的主体功能; WebService 层可以调用商务逻辑层,数据库访问层和 Model 层, WebUI 主要是提供给用户的界面,体现系统的实际功能,可以访问商务外观层和 Model 层, Model 层主要功能是实现层间的数据传递,可以被其他层调用。采用这种开发方式主要是有利于系统的维护和今后的系统扩展,如果某一层出现问题或需要更新某一层的功能,只需要修改相应的那一层,不需要修改其他层,这样就可以问题局部化,便于解决问题。



** 四、 ** ** ** ** 详细设计 ** ** **


** (1) ** ** 系统中各个类的静态结构及相互关系图: **

![](http://dev.csdn.net/article/58/C:/Documents and Settings\wy\桌面\9.JPG)


该图描述系统中各个层包含的类及类的成员函数,还标示了类之间的调用关系。现以商务外观层为例为例说明如下:

该层有三个类: UserSystem,SiteSystem,RoleSystem, 其中 UserSystem 包括函数 :

CreateSite(), 创建一个站点

EnableSite(), 开通一个站点

DisableSite(), 停用一个站点

UpdateSite(), 更改一个站点

RemoveSite(), 删除一个站点

GetSite(), 查询一个站点

ListAllSites() ,查询所有站点

该类调用商务逻辑层中的类 UserRoles 的成员函数和数据库访问层中的类 Users 的成员函数来实现系统的功能。其余各类与上述类似,图中已经标明,这里不在详细描述。 ** **



** (2)RoleSystem ** ** 序列图:
![](http://dev.csdn.net/article/58/C:/Documents and Settings\wy\桌面\10.JPG)
**


该图描述系统管理角色的具体实现过程,涉及到商务外观层和商务逻辑层,实现时通过层层调用。现以成员站点删除一种角色为例说明如下:

在商务外观层由类 RoleSystem 的成员函数 RemoveRole() 来实现该功能,由于删除一种角色,需要满足一定的条件,所以函数通过调用商务逻辑层中的类 UsersRoleRules 的成员函数 RemoveRole() 来实现,由于函数的参数是 nickname,usid, 通过调用数据库访问层提供的类 Users 的成员函数 GetUser() 和类 Sites 的成员函数 GetSite() 调用 Model 层返回 UserData 和 SiteData 两各数据实体,获取 UserID,SiteID 两个参数,如果这两个实体为空,返回 false ,否则,再通过数据库访问层中类 UserRoles 的成员函数 GetUserRole() 使用参数 UserID,SiteID 调用 Model 层返回 UserRoleData 数据实体,如果这个实体为空,返回 false ,否则,返回 true 。这个功能实现的调用比较复杂,商务外观层调用商务逻辑层,然后商务逻辑层再调用商务逻辑层和数据库访问层。代码如下:

// 商务外观层代码

public bool RemoveRole( string nickname,System.Guid usid)

{

return new BusinessRules.UserRoleRules().RemoveRole(nickname,usid);

}

// 商务规则层的代码

public bool RemoveRole( string nickname,System.Guid usid)

{

UserData user= new DataAccess.Users().GetUser(nickname);

SiteData site= new DataAccess.Sites().GetSite(usid);

if (user!= null && site!= null )

{

UserRoleData userrole= new DataAccess.UserRoles().GetUserRole(user.UserID,site.SiteID);

<SPAN

Published At
Categories with Web编程
Tagged with
comments powered by Disqus