C#毕业设计下载(全套源码+配套论文)——基于C#+asp.net+sqlserver的教务管理平台设计与实现
基于C#asp.netsqlserver的教务管理平台设计与实现毕业论文程序源码大家好今天给大家介绍基于C#asp.netsqlserver的教务管理平台设计与实现更多精选毕业设计项目实例见文末哦。文章目录基于C#asp.netsqlserver的教务管理平台设计与实现毕业论文程序源码1、项目简介2、资源详情3、关键词4、资源下载5、毕设简介6、精选500套毕业设计软件源码和配套论文下载1、项目简介务系统中的用户数量众多需要具有不同的权限以实现不同的应用。本论文介绍了开发背景开发平台并基于需求分析实现了教务管理平台中基于角色控制的权限系统(RBAC)及公共模块的设计与开发。RBAC实现了用户与访问权限的逻辑分离更符合教务平台的用户、数据和应用特征在公共模块中实现了系统通用的日志管理异常处理常用类库方法等。通过设计和应用本系统有效的解决了教务平台中关于用户管理与权限操作等方面的问题为系统公共模块的实现打下坚实的基础。通过较为详尽的功能测试表明本文的设计内容具有一定的通用性可用于需要动态分配权限与角色的管理系统中。2、资源详情项目难度中等难度适用场景相关题目的毕业设计配套论文字数9328个字26页包含内容整套源码完整毕业论文3、关键词权限公共模块RBAC4、资源下载本项目全套源码及配套论文如下有需要的朋友可以点击进行下载。如果链接失效可点击文章最下方的卡片扫码自助下载。序号毕业设计全套资源点击下载本项目源码基于C#asp.netsqlserver的教务管理平台设计与实现源码文档C#_.net_BS架构_教务管理平台.zip5、毕设简介提示以下为毕业论文的简略介绍项目源码及完整毕业论文下载地址见文末。1 引言教务管理平台对安全问题有较高的要求传统的访问控制方法DACDiscretionary Access Control自主访问控制模型、MACMandatory Access Control强制访问控制模型难以满足复杂的教务管理平台需求。NISTNational Institute of Standards and Technology美国国家标准化和技术委员会于90年代初提出了基于角色的访问控制方法RBAC实现了用户与访问权限的逻辑分离更符合企业的用户、组织、数据和应用特征。RBAC角色访问控制的基本思想即把整个访问控制过程分成两步访问权限与角色相关联角色再与用户关联从而实现了用户与访问权限的逻辑分离。由于RBAC实现了用户与访问权限的逻辑分离因此它极大的方便了权限管理。例如如果一个用户的职位发生变化只要将用户当前的角色去掉加入代表新职务或新任务的角色即可角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多并且委派用户到角色不需要很多技术可以由行政管理人员来执行而配置权限到角色的工作比较复杂需要一定的技术可以由专门的技术人员来承担但是不给他们委派用户的权限这与现实中情况正好一致。1.1 课题背景省略在这样的大环境下我们选择了“教务管理平台”这个系统符合实际需求。其中教务管理平台中使用人员的复杂性和众多模块的管理需要较为复杂和安全的权限系统另外由于团队开发和系统平台的需要也需要一定的公共模块的支持。例如日志管理异常处理数据验证和过滤等。1.2 课题目的为教务管理平台设计一套安全通用可扩展的权限系统和系统公共基础模块的设计与开发以应对系统和团队开发的需要。1.3 课题意义通过完成本课题系统的设计与开发为团队开发教务管理平台打下基础加快整个教务管理系统的开发速度以应对实际教务管理工作自动化的需要极大提高教务管理工作人员的效率。2 系统平台与相关技术2.1 系统架构B/S架构的优点在于客户端和服务器通过Intranet进行数据交换客户端基于统一的WEB浏览器减少了投资解决了系统维护升级的问题另外只有极少部分事务逻辑在前端Browser实现但是主要事务逻辑在服务器端Server实现这也就充分保护了数据的安全。根据教务平台的需求和实际使用情况由于人员的复杂性和访问机器的分布性适合使用B/S架构。2.2 开发平台介绍本毕业设计的命题是教务管理平台中权限系统和公共模块的设计和开发根据团队要求和开发成本选择了Visual Studio 2005SQL 开发环境使用的语言为c#。2.2.1 Visual Studio 介绍Visual Studio 是一系列高效的、智能的开发工具的统称它拥有一个庞大的产品线包括面向学生、爱好者、初学者的Express版面向专家、Visual Basic 6的Standard版面向顾问、企业开发人员的Professional版和面向架构师的Team System版本。在这些版本中有些集成了开发软件常用到的东西比如重构、单元测试、类设计器等等以方便开发人员快速的设计各类软件。2.2.2 SQL Server 介绍SQL Server 是一个全面的数据库平台使用集成的商业智能工具提供了企业级的数据管理。SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 数据引擎是企业数据管理解决方案的核心。此外 SQL Server 结合了分析、报表、集成和通知功能。2.3 开发技术介绍2.3.1 Asp.netASP.NET是微软流行的动态WEB编程技术活动服务器网页ASP的最新版本但它远不是传统ASP简单升级。ASP.NET和ASP的最大区别在于编程思维的转换ASP.NET是真正的面向对象Object-oriented而不仅仅在于功能的增强。在ASP.NET中Web 窗体页由两部分组成视觉元素HTML、服务器控件和静态文本和该页的编程逻辑。其中每一部分都存储在一个单独的文件中。可视元素在一个扩展名为 .aspx 文件中创建而代码位于一个单独的类文件中该文件称作代码隐藏类文件扩展名为.aspx.vb 或 .aspx.cs。这样.aspx文件中存放所有要显示的元素aspx.vb或.aspx.cs文件中存放逻辑。2.3.2 RBAC企业环境中的访问控制策略一般有三种自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法RBAC。其中自主式太弱强制式太强二者工作量大不便于管理。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是1.减小授权管理的复杂性降低管理开销2.灵活地支持企业的安全策略并对企业的变化有很大的伸缩性。基于角色的访问控制RBAC作为一种灵活和直观的访问控制技术在20世纪90年代迅速发展起来RBAC通过引入角色的新概念来实施访问控制策略。不同的角色和它所应具有的权限许可互相联系用户作为某些角色的成员获得角色所拥有的权限。角色可以根据实际的单位或组织的不同工作职能和权限来划分依据用户所承担的不同权利和义务来授权相应的角色对于一个存在大量用户和权限的权限分配系统来说从用户到角色的管理简化了权限分配的复杂性提高了安全管理的效率和质量。3 需求分析和数据库设计3.1 应解决的问题3.1.1 基于RBAC的权限系统.1 用户(user)和角色(role)用户指访问系统中的资源的主体一般为人也可为 Agent 等智能程序。角色指应用领域内一种权力和责任的语义综合体可以是一个抽象概念也可以是对应于实际系统中的特定语义体比如组织内部的职务等。针对角色属性的不同某些模型中将角色进一步细分为普通角色和管理员角色可理解为全局角色。2 许可Permissions和权限Permission许可描述了角色对计算机资源的访问和操作所具有的权限其反映的是授权的结果。比如授予某个角色对计算机资源有读的权限则代表了一个许可的存在这个许可表示角色获取了对计算机资源的读许可。针对操作来说其描述的是许可和操作之间的一种关联关系而这层关系则表示了某一角色对某一操作所具有的权限及权限状态。3 角色和指派Assignment指派包含两个方面用户指派和许可指派。用户指派表示的是将用户指派给特定的角色。许可指派表示的是为角色指派计算机资源的访问和操作许可。3.1.2 平台需要的公共模块1日志管理2异常处理3加密模块及字符串验证与过滤等公共模块。3.2 功能需求按照教务平台RBAC权限系统的需要和相关公共基础模块的需要有如下的功能需求。如图1所示。图1 系统功能图RBAC中用户角色权限资源之间的关系如图2所示。图2 RBAC关系图3.2.1 用户信息管理用户是权限的拥有者或主体。用户和权限实现分离通过授权管理进行绑定。用户信息管理主要提供教务管理平台相关使用人员的信息的管理包括添加删除修改等相关操作。3.2.2 角色信息管理角色是权利和责任的标识角色信息管理主要提供教务管理平台相关使用人员所属角色信息的管理包括添加删除修改等相关操作。角色和权限管理起来后就拥有了一定的资源操作权力。3.2.3 资源管理资源管理主要提供教务管理平台中各个功能模块可访问资源的管理包括各种资源相关权限的添加删除修改等相关操作。资源包括各种操作和可访问的页面等。3.2.4 用户角色分配实现用户和角色之间的关联关系映射。在用户信息列表中选择要分配角色的用户单击列表中的用户名进入分配角色页面所示的窗口。在为用户分配角色的窗口中,主要是通过职能范围来确定用户的权限。每一个用户在每一个职能范围中均有一个默认的角色并可以浏览该职能域中密级为“公开”的数据元。为用户分配角色主要就是修改选定的用户在每一个职能范围中的角色以及在每个职能范围中可以操作的数据元的密级。3.2.5 角色权限分配实现权限操作和角色之间的关联关系映射。角色描述用户的职能权限是可访问资源的标识给指定的角色分配权限使角色具有了真正意义上的职能范围。3.2.6 权限操作完成资源和权限之间的绑定。可访问的资源或操作需要一个标识来标明权限用通俗的语言来描述这种可用操作。例如用户查看某个列表“查看”就代表了权限而“列表“就是资源。3.2.7 日志管理日志是每个系统必不可少的东西教务平台中用户的登陆信息操作信息或异常信息都需要保存以方便管理员的调用。日志管理主要完成对系统相关各种日志的记录和管理将信息持久化保存。3.2.8 异常处理异常处理是每个系统必备的自定义异常有助于把系统的错误信息按照自己定义的方式来处理教务平台中把异常信息的保存进日志系统中方便系统管理员查看以及时修补系统存在的问题。3.2.9 基础公共类库完成相关系统基本类库的设计。涉及到数据库操作相关javascript操作字符串过滤和编码解码分页等。这类方法通常具有一般的通用性以方便教务平台各模块的调用。3.3 非功能需求省略3.4 数据库设计根据需求分析中的各种模块设计了如下的数据库。 用户表 Accounts_Users用来存储系统用户。表的字段说明如表1所示。图3 数据库关系图数据库表之间的关系如图3所示。4 系统设计与实现4.1 公共模块设计系统公共模块包括系统数据库操作系统通用工具类树目录管理系统通用页面设计。4.1.1 数据库通用类设计数据库通用类由类DbManagerSQL实现,它是应用程序通过ADO.NET访问数据库的基础类,也是应用程序实现上层业务逻辑的基础.该类主要封装了创建访问数据库的一些对象或方法,如数据库连接对象等.以及执行数据库操作的必需对象。该类通过构造函数读取config配置文件里的数据库连接类方法有执行简单SQL语句执行存储过程,事务处理返回datareader和dataset等操作方法。4.1.2 系统工具通用类设计在本系统中应用程序定义了几个工具通用类它们在整个应用过程中被应用了很多次因此才能把它们集中在一起作为系统工具通用类。系统工具类通用类由命名空间Njj.Common下的各种类提供。ConfigHelper.cs提供了关于读取webconfig中字符串值的各种方法。MessageBox.cs中封装了向浏览器写入javascript代码和弹出对话框窗口的各种操作.PageValidate.cs中提供了各种数据验证函数和字符串过滤html编码解码等各种操作。Njj.PageControl里的各种类提供了一些通用的页面自定义控件的操作分页的样式等。4.1.3 系统日志和树目录设计命名空间Njj.TreeAndLog下的TreeAndLogManage类封装了关于日志的相关操作和目录列表的树相关操作。日志操作有添加修改删除日志类别的功能和添加修改删除日志的功能。日志主要记录系统用户的各种可记录操作以及系统异常发生时的堆栈信息以方便管理员的管理。主要记录内容有用户日志记录时间日志错误信息用户IP日志类别等。日志错误信息包含堆栈错误或相关用户的操作记录。系统主要界面如图4,图5所示。图4 日志详细信息图5 日志管理图6 树状菜单目录树列表调用SysNode树子结点对象来对数据库S_Tree执行各种添加删除修改操作,根据用户角色调用其相关的权限列表动态显示菜单。界面如图6所示。代码如下所示。DataRow[]drsdt.Select(ParentID 0);// 选出所有子节点//菜单状态stringMenuExpandedNJJ.Common.ConfigHelper.GetConfigString(MenuExpanded);bool menuExpandbool.Parse(MenuExpanded);TreeView1.Nodes.Clear();// 清空树foreach(DataRowr in drs){string nodeidr[NodeID].ToString();string textr[Text].ToString();string parentidr[ParentID].ToString();string locationr[Location].ToString();string urlr[Url].ToString();string imageurlr[ImageUrl].ToString();intpermissionidint.Parse(r[PermissionID].ToString().Trim());string framenameTargetFrame;//treevie 设置this.TreeView1.Font.Name宋体;this.TreeView1.Font.SizeFontUnit.Parse(9);//权限控制菜单if((permissionid-1)||(user.HasPermissionID(permissionid)))//绑定用户有权限的和没设权限的即公开的菜单{TreeNoderootnodenewTreeNode();rootnode.Texttext;rootnode.Valuenodeid;rootnode.NavigateUrlurl;rootnode.Targetframename;rootnode.ExpandedmenuExpand;rootnode.ImageUrlimageurl;rootnode.SelectActionTreeNodeSelectAction.Expand;//设置菜单状态TreeView1.Nodes.Add(rootnode);intsonparentidint.Parse(nodeid);// 子节点ID CreateNode(framename, sonparentid, rootnode, dt);//递归显示菜单项}4.1.4 系统异常处理系统异常处理有类MyException实现它继承于系统的异常类Exception,并重载基类的 异常处理函数MyException().该类中了定义了两个异常处理函数其中一个函数为MyException(string source,string message,Exception inner),该函数在重载记录函数时添加了一个异常代码参数 source,它可以用来标识异常的代码另外一个函数为MyException(string source,string message),它也是继承于基类异常函数MyException也在重载记录异常函数时添加了一个异常代码参数。并且在异常处理的代码内部调用日志类函数将异常信息持久化。4.1.5 系统通用页面设计当用户登陆系统之后进入系统平台的主页面它由Main.aspx、Spliter.aspx、Left.aspx和Top.aspx4个页面组成。并且可以根据自己的喜好选择不同的页面风格系统将自动加载用户设置的风格。如图7所示。图7 主界面4.2 权限系统模块的实现系统主功能模块包括用户信息管理角色管理权限管理资源与权限的绑定用户与角色的绑定等。4.2.1 用户信息管理和角色绑定本系统中的起始页面为Login.aspx如图8所示。图8 系统登陆界面用户点击【登录】时系统初始化命名空间Njj.Accounts.bus下类User的一个user对象将user赋予当前上下文user对象。根据用户当前的身份标识中的密码验证用户身份的有效性若成功则设置用户系统登陆添加日志添加用户的用户信息到Session中并且加载用户设置的界面风格最后跳转到应用系统操作主界面。该程序代码如下所示。AccountsPrincipalnewUserAccountsPrincipal.ValidateLogin(userName,Password);//根据用户名和密码初始化用户标识实现iprincipal接口if(newUsernull){this.lblMsg.Text登陆失败 userName;}else{UsercurrentUsernewNJJ.Accounts.Bus.User(newUser);//根据用户标识初始化用户对象Context.UsernewUser;将当前上下文用户标识设为新用户if(((SiteIdentity)User.Identity).TestPassword(Password)0)//检测用户密码{this.lblMsg.Text你的密码无效;}else{FormsAuthentication.SetAuthCookie(userName,false);//设置用户登陆NJJ.TreeAndLog.TreeAndLogManagelognewNJJ.TreeAndLog.TreeAndLogManage();log.AddLog(DateTime.Now.ToString(),用户登陆,User.Identity.Name,1);//添加日志Session[UserInfo]currentUser;//session保存当前用户信息Session[Style]currentUser.Style;//session保存用户设置的界面风格if(Session[returnPage]!null){string returnpageSession[returnPage].ToString();Session[returnPage]null;Response.Redirect(returnpage);}else{Response.Redirect(main.htm);}}用户管理页面为:UserAdmin.aspx,界面如图9所示。用户角色分配界面如图10所示。图9 用户管理图10 角色分配页面初始化时调用函数user对象的GetAllUsers()方法获取所有用户数据并绑定到datagrid中。点击图中的修改角色链接可进入用户与角色绑定界面。4.2.2 角色管理和权限绑定角色管理和权限绑定页面主要为RoleAdmin.aspx和EditRole.aspx主要实现对增加新的角色、修改角色、删除角色和角色对象权限的分配功能。如图11图12所示。图11 角色管理图12 编辑角色信息RoleAdmin.aspx页面调用了命名空间Njj.Accounts.bus下Role类对象的相关方法GetRoleList()得到所有的角色列表Create()建立新角色。EditRole.aspx中首先listbox中绑定某类别权限下的所有权限点击增加权限按钮调用Role类对象的AddPermission()向角色分配对应的权限。4.2.3 权限管理权限管理主要实现权限类别及权限命名的管理,如图13所示。代码如下所示。intCategoryIdint.Parse(this.ClassList.SelectedValue);DataSetPermissionsListAccountsTool.GetPermissionsByCategory(CategoryId);this.DataGrid1.DataSourcePermissionsList;this.DataGrid1.DataBind();图13 权限管理本模块包含权限类别的添加修改删除以及类别下子权限的添加修改删除等功能主要针对命名空间下Njj.Accounts.Bus下的PermissionCategories和Permissions类进行操作。4.2.4 系统资源管理和权限绑定及菜单操作系统资源管理主页面为:TreeList.aspx和add.aspx,如图1415所示。此模块负责添加系统可访问的URL资源和菜单模块的操作。添加菜单时可以和对应的权限相绑定以动态显示用户菜单。对于对应的URL文件可执行过滤功能权限不够的用户将拒绝进入。图14 系统资源管理图15 添加资源并绑定权限主要代码如下所示。NJJ.TreeAndLog.TreeAndLogManagesmnewNJJ.TreeAndLog.TreeAndLogManage();DataTabledtsm.GetTreeList().Tables[0];this.listTarget.Items.Clear();//加载菜单选项到下拉列表中this.listTarget.Items.Add(newListItem(根目录,0));DataRow[]drsdt.Select(ParentID 0);/////////////循环读取添加.foreach(DataRowr in drs){string nodeidr[NodeID].ToString();string textr[Text].ToString();//string parentidr[ParentID].ToString();//string permissionidr[PermissionID].ToString();text╋text;this.listTarget.Items.Add(newListItem(text,nodeid));intsonparentidint.Parse(nodeid);string blank├;BindNode(sonparentid,dt,blank);}this.listTarget.DataBind();////绑定父类菜单/////////////读取所有权限DataTabletabcategoryNJJ.Accounts.Bus.AccountsTool.GetAllCategories().Tables[0];intrctabcategory.Rows.Count;for(intn0;nrc;n){stringCategoryIDtabcategory.Rows[n][CategoryID].ToString();stringCategoryNametabcategory.Rows[n][Description].ToString();CategoryName╋CategoryName;this.listPermission.Items.Add(newListItem(CategoryName,CategoryID));///将权限绑定到下拉列表DataTabletabforumsNJJ.Accounts.Bus.AccountsTool.GetPermissionsByCategory(int.Parse(CategoryID)).Tables[0];intfctabforums.Rows.Count;for(intm0;mfc;m){stringForumIDtabforums.Rows[m][PermissionID].ToString();stringForumNametabforums.Rows[m][Description].ToString();ForumName ├『ForumName』;this.listPermission.Items.Add(newListItem(ForumName,ForumID));}}this.listPermission.DataBind();this.listPermission.Items.Insert(0,--请选择--);///绑定权限4.2.5 url过滤系统对于普通的页面可以判断用户是否有权限来访问通过继承类System.Web.UI.Page并自写其中的Page_Load事件,生成公用的Page基类由于asp.net的代码后置功能对于web页面来说判断其所属权限可以通过其后置代码类继承公共的Page基类来达到代码重用的效果。该程序代码如下所示。//权限验证if(Context.User.Identity.IsAuthenticated)///当前用户是否授权{AccountsPrincipalusernewAccountsPrincipal(Context.User.Identity.Name);//生成此用户的身份标识if(Session[UserInfo]null)//如果Session保存的用户信息为空则调用用户信息保存到session,页面重新加载{NJJ.Accounts.Bus.UsercurrentUsernewNJJ.Accounts.Bus.User(user);Session[UserInfo]currentUser;Session[Style]currentUser.Style;Response.Write(script deferlocation.reload();/script);}PermissionspnewPermissions();///session保存的用户信息不为空调用权限表PermissionIDp.GetPermissionID(Request.FilePath.Substring(24).Trim());/// 获取url请求if((PermissionID!-1)(!user.HasPermissionID(PermissionID)))////如果页面不为公共页面的话则调用此页面的权限ID来判断用户是否有此权限{Response.Clear();Response.Write(script deferwindow.alert(您没有权限进入本页\\n请重新登录或与管理员联系);history.back();/script);///用户无权限则重新登陆Response.End();}}else{FormsAuthentication.SignOut();///用户没有授权的话将注销用户。Session.Clear();Session.Abandon();Response.Clear();Response.Write(script deferwindow.alert(您没有权限进入本页或当前登录用户已过期\\n请重新登录或与管理员联系);parent.locationvirtualPath/Login.aspx;/script);Response.End();}5 测试测试是软件系统最重要的部分鉴于个人能力和软件环境的有限性在系统设计和开发的过程中我只进行了较多的黑盒测试以上图3-图15皆为测试时系统运行图。经测试系统正常运行符合系统设计要求和开发需要。结 论本文描述了一个教务管理平台中权限系统及公共模块的设计与开发从测试结果看基本达到了当初课题设计要求。此权限系统可用于一般性的MIS系统中具有较强的适应性可动态分配角色和进行权限管理并附带日志管理异常管理及大量的公共基础模块设计为完整的系统开发打下基础。参考文献[1] Simon Pobinson.Professional C#[M].北京:清华大学出版社,2002。[2] Jeffrey Richter.Microsoft .NET框架程序设计[M].北京:机械工业出版社,2003。[3] James W.Cooper.C# Design Patterns[M].北京:电子工业出版社,2004。[4] Richard Blum.C# Network Programming[M].北京:电子工业出版社,2003。[5] 刘晓华.精通.NET核心技术[M].北京:电子工业出版社,2002。[6] 狄龙(Darin Dillon)…NET开发人员调试策略[M].北京:清华大学出版社,2004。[7] 刘友话…Net环境下数据库应用系统开发技术[M].北京:科学出版社,2004。[8] Ian Sommerville.Software Engeering[M].北京:机械工业出版社,2003。[9] Erich Gamma.Design Patterns[M].北京:机械工业出版社,2002。致 谢省略6、精选500套毕业设计软件源码和配套论文下载500套毕业设计软件源码和配套论文下载
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2442947.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!