4.1.4 系统异常处理 系统异常处理有类MyException实现,它继承于系统的异常类Exception,并重载基类的 异常处理函数MyException().该类中了定义了两个异常处理函数,其中一个函数为MyException(string source,string message,Exception inner),该函数在重载记录函数时添加了一个异常代码参数 source,它可以用来标识异常的代码;另外一个函数为MyException(stringsource,string message),它也是继承于基类异常函数MyException(),也在重载记录异常函数时添加了一个异常代码参数。并且在异常处理的代码内部调用日志类函数将异常信息持久化。 内容来自论文无忧网 www.paper51.com 4.1.5 系统通用页面设计 http://www.paper51.com
当用户登陆系统之后,进入系统平台的主页面,它由Main.aspx、Spliter.aspx、Left.aspx和Top.aspx4个页面组成。并且可以根据自己的喜好,选择不同的页面风格,系统将自动加载用户设置的风格。如图7所示。 copyright paper51.com copyright paper51.com 图7 主界面 http://www.paper51.com 4.2 权限系统模块的实现 http://www.paper51.com
系统主功能模块包括用户信息管理,角色管理,权限管理,资源与权限的绑定,用户与角色的绑定等。 内容来自论文无忧网 www.paper51.com 4.2.1 用户信息管理和角色绑定 http://www.paper51.com 本系统中的起始页面为Login.aspx,如图8所示。 内容来自www.paper51.com
内容来自www.paper51.com
图8 系统登陆界面 paper51.com
用户点击【登录】时,系统初始化命名空间Njj.Accounts.bus下类User的一个user对象,将user赋予当前上下文user对象。根据用户当前的身份标识中的密码验证用户身份的有效性,若成功则设置用户系统登陆,添加日志,添加用户的用户信息到Session中,并且加载用户设置的界面风格,最后跳转到应用系统操作主界面。该程序代码如下所示。 内容来自www.paper51.com
AccountsPrincipal newUser = AccountsPrincipal.ValidateLogin(userName, Password); //根据用户名和密码初始化用户标识,实现iprincipal接口 paper51.com if (newUser == null) 内容来自论文无忧网 www.paper51.com { 内容来自www.paper51.com this.lblMsg.Text = "登陆失败: " + userName; copyright paper51.com
} 内容来自论文无忧网 www.paper51.com else 内容来自论文无忧网 www.paper51.com { copyright paper51.com
User currentUser = new NJJ.Accounts.Bus.User(newUser);//根据用户标识初始化用户对象 http://www.paper51.com Context.User = newUser; 将当前上下文用户标识设为新用户 内容来自www.paper51.com
if (((SiteIdentity)User.Identity).TestPassword(Password) == 0) //检测用户密码 内容来自www.paper51.com
{ 内容来自论文无忧网 www.paper51.com this.lblMsg.Text = "你的密码无效!"; http://www.paper51.com } 内容来自论文无忧网 www.paper51.com else 内容来自论文无忧网 www.paper51.com { http://www.paper51.com FormsAuthentication.SetAuthCookie(userName, false); //设置用户登陆 paper51.com NJJ.TreeAndLog.TreeAndLogManage log = new NJJ.TreeAndLog.TreeAndLogManage(); log.AddLog(DateTime.Now.ToString(), "用户登陆", User.Identity.Name, "1");//添加日志 http://www.paper51.com Session["UserInfo"] = currentUser; //session保存当前用户信息 copyright paper51.com
Session["Style"] = currentUser.Style; //session保存用户设置的界面风格 copyright paper51.com if (Session["returnPage"] != null) http://www.paper51.com { copyright paper51.com string returnpage = Session["returnPage"].ToString(); copyright paper51.com Session["returnPage"] = null; 内容来自论文无忧网 www.paper51.com Response.Redirect(returnpage); 内容来自www.paper51.com } 内容来自www.paper51.com
else 内容来自www.paper51.com
{ paper51.com Response.Redirect("main.htm"); copyright paper51.com } copyright paper51.com } http://www.paper51.com 用户管理页面为:UserAdmin.aspx,界面如图9所示。 内容来自www.paper51.com 用户角色分配界面如图10所示。 内容来自论文无忧网 www.paper51.com
http://www.paper51.com
图9 用户管理 copyright paper51.com copyright paper51.com 图10 角色分配 http://www.paper51.com 页面初始化时调用函数user对象的GetAllUsers()方法获取所有用户数据并绑定到datagrid中。 copyright paper51.com 点击图中的修改角色链接可进入用户与角色绑定界面。 copyright paper51.com 4.2.2 角色管理和权限绑定 copyright paper51.com 角色管理和权限绑定页面主要为RoleAdmin.aspx和EditRole.aspx,主要实现对增加新的角色、修改角色、删除角色,和角色对象权限的分配功能。如图11,图12所示。 内容来自www.paper51.com
内容来自论文无忧网 www.paper51.com 图11 角色管理 paper51.com
copyright paper51.com 图12 编辑角色信息 内容来自www.paper51.com RoleAdmin.aspx页面调用了命名空间Njj.Accounts.bus下Role类对象的相关方法,GetRoleList()得到所有的角色列表,Create()建立新角色。 内容来自论文无忧网 www.paper51.com
EditRole.aspx中,首先listbox中绑定某类别权限下的所有权限,点击增加权限按钮调用Role类对象的AddPermission()向角色分配对应的权限。 copyright paper51.com 4.2.3 权限管理 http://www.paper51.com 权限管理主要实现权限类别及权限命名的管理,如图13所示。代码如下所示。 内容来自论文无忧网 www.paper51.com
int CategoryId = int.Parse(this.ClassList.SelectedValue); http://www.paper51.com DataSet PermissionsList = AccountsTool.GetPermissionsByCategory(CategoryId); http://www.paper51.com this.DataGrid1.DataSource = PermissionsList; paper51.com this.DataGrid1.DataBind(); copyright paper51.com
copyright paper51.com
图13 权限管理 内容来自论文无忧网 www.paper51.com 本模块包含权限类别的添加,修改,删除,以及类别下子权限的添加,修改,删除等功能,主要针对命名空间下Njj.Accounts.Bus下的PermissionCategories和Permissions类进行操作。 paper51.com |