基于Web的研究生学位信息管理系统开发关键技术(3)

2012-08-28 21:59


//设置验证票cookie,第一个参数为cookie的名字,第二个参数为cookie的值也就是加密后的票HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
Response.Cookies.Add(authCookie); //把cookie加进Response对象发生到客户端 (5)在Global.asax内的Application_AuthenticateRequest事件中处理程序中(Global.asax)中,使用票创建IPrincipal对象并存在HttpContext.User中。 HttpCookie authCookie = Context.Request.Cookies [Forms Authentication.FormsCookieName];
     FormsAuthenticationTicket authTicket = Forms Authentication. Decrypt(authCookie.Value);//解密
     string[] roles = authTicket.UserData.Split(new char[]{','});//根据存入时的格式分解角色
     Context.User = new GenericPrincipal(Context.User. Identi ty, Roles);//存入HttpContext.User     2) 基于角色的用户管理     基于角色的访问控制已经相当成熟,作为策略中立的鉴别和授权机制,通过角色的继承和职责分离等控制约束条件可以实现多种控制策略。基于角色的访问控制引入角色这个中介,安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其职责被指派为不同的角色。由于实现了用户与访问权限的逻辑分离,基于角色的策略极大地方便了权限管理,而且对实际应用环境的访问控制需求的描述更自然,而对一个组织来说,其行为特征和功能是比较稳定的,因此其角色是比较稳定的。由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多。     本学位管理系统包含了多种数据操作功能,并且拥有不同种类的多个用户,从总体上考虑可以分为管理员、教师(普通教师、研究生秘书)和研究生(硕士、博士、专业硕士等)。不同类别的用户对系统功能的使用权限是不同的,因此要求系统提供一种对多用户的权限管理,以确保具有权限的用户能够获取或处理数据和信息,禁止所有未授权用户操作数据。针对系统的这一特点,我们在开发过程中,采用了两级控制机制分别对页面资源和数据进行控制。在用户成功登录系统后根据用户角色所具有的权限动态生成菜单页面,从而限制了用户对未授权页面的访问;在用户访问同一页面时,对于不同的用户所获取的数据信息是不一样的。例如,对于不同学院的研究生秘书进入系统后,他们只能操作所在学院的学生数据。     在研究生学位管理系统中,我们把所有系统用户的角色信息保存在数据库的用户表中。其次,将系统中所有的功能模块及其子功能访问接口的访问权限信息都存放在数据库中的访问权限表中。 当用户登录学位管理系统时,权限管理的系统流程如图4所示。 图4  权限管理的系统流程     3) 基于存储过程分页显示技术 显示数据查询的结果时,为了缩短页面数据的显示时间,我们利用分页的方法来显示查询结果。传统的数据分页方法是ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一经建立,就将相关的记录锁住,直到取消游标。     对于数据量大的数据源而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。因此在分页的时候可以检索当前页面所需数据,而非检索所有的数据,然后单步执行当前行,这就是我们所说的基于存储过程的分页显示技术。最早较好地实现这种根据页面大小和页码来提取数据的方法是“俄罗斯存储过程”。这个存储过程用了游标,由于游标的局限性,该方法没有得到很好的应用。

基于Web的研究生学位信息管理系统开发关键技术(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数字移动多媒体案例分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: