Fly with the wind-TerryDong

.NET on the way

导航

windows认证与权限管理设计

Posted on 2008-02-01 17:59  Terry Dong  阅读(894)  评论(0编辑  收藏  举报

 

设计方案

  • 通过LDAP进行用户登录验证,并读取用户域中所属角色。
  • 通过用户角色与权限的关联表,判断用户是否可以访问某个操作页面,如果不可以操作,提示用户没有相关权限,提供返回入口。
  • 记录用户所有的安全日志,操作日志(包括,增加,修改,删除,查询)

功能

  • 角色-功能-权限管理界面
  • 功能列表管理 
  • 功能模块管理 
  • 事件日志管理 

数据库backend_authorize

  • 功能表(function_list):功能ID, 功能名称, 功能介绍,上级功能ID, 功能网址,是否可用
  • 权限表(permission):权限ID,权限名称
  • 角色权限表(role_authorized): 角色权限ID,角色名称,用户职位,功能id,权限id
  • 事件日志表(event_log):ID, 用户名,客户端IP, 事件类型, 功能名称, 模块名称, 详细描述, 操作时间

场景

* 验证逻辑.jpg:
验证逻辑.jpg

备注:用户的职位存储于域用户的描述栏中,但由于目前内网域环境中,用户对应的描述为空,所以暂时不进行用户的描述判断,即用户所拥有的角色可以访问页面,即通过权限的验证。

数据规则


字段
数据规则与约定

function_list
fucntion_list_id
自增长,主键

name
功能名称

description
功能描述

parent_id
父功能编号,默认值为0,即基本功能

url
功能网址,存储规则:Request.Url.AbsolutePath的值

is_valid
改功能是否可用,默认值为0,值为1时为可用

permission
permission_id
自增长,主键

name
权限名称,即(完全控制,只读)

role_authorized
role_authorized_id
自增长,主键

role_name
用户角色,存储规则:存为域中的group名

user_description
用户的职位,存储规则:存为域中user的description。若用户中description有多个职位(leader,employee...),在本字段中只插入一个职位,分多条记录存储

function_id
授权的功能id

permission_id
授权用户拥有的访问权限,(完全控制,只读(后期))

应用

  • 新增功能
    • 在数据表function_list中根据相关的字段数据规则添加
  • 为功能分配可访问角色信息
    • 在表role_authorized中 根据相关字段数据规则添加
  • web应用
    • 开发完功能页面后,如须添加访问控制,直接拖拽 用户权限验证控件(项目中\BackOfficeWeb\windowsAuthorized\WebUserControl.ascx到页面中既可,无需其他代码