构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统



摘要: 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(25)-权限管理系统-系统管理员(附生成器)由于25讲用代码生成器生成代码,我没有把代码贴出,导致文章字数过少,在主页下架,有兴趣的朋友请追溯到25讲中,来生成用户管理模块。由于之前做了将权限赋给角色,还需要做将角色组赋给用户,和将用户赋给角色组,一个用户可以拥有多个角色组,一个角色组包含多个用户,打开模块管理,添加一个分配的操作码并在角色权限设置授权给他在SysUser的Index添加以下按钮@Html.ToolButton("btnAllot", "icon-share&q 阅读全文
posted @  2014-02-21 11:26 ymnets 阅读(735) |  评论 (7)  编辑
摘要: 这一节我们要着手建立系统管理员表,但发布之前,我先发布一个代码生成器给大家先用着。这个生成器是为这个项目而生的,理论不能用于其他项目,而且写得比较潦草,但能用下载地址有兴趣要生成器源码的在群里就能获取到,我已经上传到群文件,解压代码生成器打开App.CodeHelper.exe编辑最底部的数据库链接,改成你要生成的数据库,左边的菜单栏是你要生成的数据库表,如图所示:代码生成器很简单的生成了所有层的代码。生成的Models层有写自定义验证的错误,大家自己去掉即可关于自定义验证大家有兴趣可以去找找其他文章。这里我自定义验证,我没发布,Ok,我们选择左边的SysUser表来生成项目的所有层代码按道理 阅读全文
posted @  2014-02-20 14:14 ymnets 阅读(255) |  评论 (7)  编辑
摘要: 过了个年回来,回顾一下,我们上次讲了角色管理,我们这一次来讲将权限授权给角色,这一节也是大家比较关心的。因为我们已经跑通了整个系统,知道权限的流转,我们先来看一张图这张图主要分要3块,角色组----系统模块----操作码授权选择角色组(表示要授权的角色,选择需要授权的模块,最后授权操作码。当存在一个操作码时候,我们应该改变SysRight表中的rightflag字段,表示他有权限。不知道大家是否还记得,这个图也是我们要做的。由于图中用的是JQGrid看起来跟Easyui有点差别,但是方式却是一样的)回到头看到SysRightOperate表的IsValid,我们将授权角色和模块和操作码这3张表 阅读全文
posted @  2014-02-12 21:18 ymnets 阅读(1555) |  评论 (10)  编辑
摘要: 距离上次发布22讲已经有少许日子了,真是太抱歉,最近年关项目比较急,时间太紧,没有时间发布.请大家见谅接下来我们的目标是角色组管理角色组权限设置用户管理把角色组授权给用户给用户分配角色组所以最少我们还要讲多5讲才能结束这个管理系统,经过之前的样例程序,我们很熟悉这个套路了,如果你很喜欢这个系列,你可以为这种重复性的动作写一个简单的代码生成器,或者一套强大的T4模版,其实这2个我都有,而且也是刚写的,以后系统完善了,给发布出来。是不是还可以呢,哈哈,T4我也写了一套,但毕竟还是没有winfrom来得方便。接下来我们在之前做好的模块管理,在22讲中,添加角色组管理的记录和操作码,如图目前我是需要添 阅读全文
posted @  2014-01-11 23:14 ymnets 阅读(1885) |  评论 (22)  编辑
摘要: 本节演示了Easyui制作菜单,即无限级别树的做法,以及DataGrid之间的联动,我也是和大家一起学习,我也是Easyui的新手,如有不足,请大家见谅 阅读全文
posted @  2013-12-24 09:00 ymnets 阅读(730) |  评论 (18)  编辑
摘要: 这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,在访问方法之前,执行一个验证机制来判断是否有操作权限(如:增删改等) 原理:通过MVC自带筛选器,在筛选器分解路由的Action和controller来验证是否有权限。 阅读全文
posted @  2013-12-11 00:01 ymnets 阅读(2510) |  评论 (19)  编辑
摘要: 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多的时间来更新,多谢大家的一路支持.如果你觉得好,记得帮我点击推荐^-^我们在之前已经插入一些真实数据,其中包含了一个用户和样例程序SysSample的权限,并实现了用户的登录。但有的朋友对表还是有疑惑,通过下面的linq查询,应该你就没有这个困惑了。不出意外,我们的菜单栏将只显示样例程序这个模块。这就简单了,我们已经有了获取菜单栏的类了,只要加入用户参与判断即可,所以我们将修改IBLL BLL IDAL DAL层的Home类(红色为原来的,绿色为最新修改的)List GetMenuByPersonId(string module 阅读全文
posted @  2013-12-04 21:15 ymnets 阅读(1561) |  评论 (7)  编辑
摘要: 我们之前做了验证码,登录界面,却没有登录实际的代码,我们这次先把用户登录先完成了,要不权限是讲不下去了把我们之前的表更新到EF中去登录在Account控制器,所以我们要添加Account的Model,BLL,DALAccountModel我们已经创建好了,下面是DAL和BLL的类using System;using System.Collections.Generic;using System.Linq;using System.Text;using App.Models;namespace App.IDAL{ public interface IAccountRepository ... 阅读全文
posted @  2013-12-03 20:35 ymnets 阅读(1803) |  评论 (8)  编辑
摘要: 这一节,我们插入数据来看看数据流,让各位同学,知道这个权限表交互是怎么一个流程,免得大家后天雾里来雾里去首先我再解释一些表,SysUser和SysRole表不用解释了。SysRoleSysUser:这个是角色和用户的对应表 一个角色可以对应多个用户,一个用户可以对应多个角色SysModuleOperate:模块的操作码表,我把每个Action都看作是一个操作码,或者每个方法可以看作是一个操作码SysRight:这个是角色和模块的关系表,只有被模块授权的角色才能设置权限SysRightOperate:这个是角色拥有的操作码,这个表间接和操作码有关联现在我们来插入一些数据来看看他们之间的关系,我们 阅读全文
posted @  2013-12-01 11:41 ymnets 阅读(2200) |  评论 (14)  编辑
摘要: 使20行的代码精简成2行,利用LINQ动态排序,中间用到一些反射,需要一些反射的基本知识 阅读全文
posted @  2013-11-28 08:32 ymnets 阅读(2189) |  评论 (9)  编辑
摘要: 我们上一节建了数据库的表,但我发现很多东西还未完善起来,比如验证码,我们先做好验证码吧,验证码我们再熟悉不过了,为了防止恶意的登录,我们必须在登录页面加入验证码,下面我将分享一个验证码,这个是用C#画的,原理是,生成一个随机4位数,将其保存为session或者是cookie形式,将用户输入的验证码进行对比,验证码可以是一个视图cshtml,或者是一个aspx页面,也可以是一个ashx一般处理程序,我们这里用ashx来显示在App.Admin下的Core文件夹下新建一个一般处理文件verify_code.ashx,复制以下代码(此验证码适用aspx程序的)using System;using S 阅读全文
posted @  2013-11-27 21:34 ymnets 阅读(1944) |  评论 (19)  编辑
摘要: 这节我们说下权限系统的特点,本系统采用的是MVC4+EF5+IOC 接口编程的架构,其中的权限树用的是DWTree,功能上做到灵活,授权操控细致,权限可以细到按钮级别 ,为了部署简单,导致设计和编码上也是比较复杂该系统主要功能如下: 自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的 按模块分配权限,或者稍微先进点的规定死某几个操作了)。 无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行 分类管理。 灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的 操作按需分配给各模块)。 对所有用户基础信息进行管理,实行有效期机制,过期自动 阅读全文
posted @  2013-11-25 23:04 ymnets 阅读(1977) |  评论 (20)  编辑
摘要: 实际上是Json格式化问题,我们应该在返回json的时候进行格式化,我们需要重写系统的JsonResult类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web.Mvc;using System.Text.RegularExpressions;using System.Web;using System.Web.Script.Serialization;namespace App.Common{ public class ToJsonResult ... 阅读全文
posted @  2013-11-23 19:24 ymnets 阅读(724) |  评论 (3)  编辑
摘要: 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结。首先这是一个团队开发项目,基于接口编程,我们从EasyUI搭建系统的框架开始,开始了一个样例程序对EasyUI的DataGrid进行了操作,并实现Unity的注入到容器,使程序的性能大大提升,代码质量上升,更佳利于单元测试,使用日志和异常坚固系统稳定性。 阅读全文
posted @  2013-11-23 17:55 ymnets 阅读(1763) |  评论 (9)  编辑
摘要: 上一讲我们做了日志与异常的结果显示列表,这一节我们讲要把他应用系统中来。 首先我们在App.Common类库中创建一个通用类ResultHelper,这个类里面写了,获取一个GUID,获取当前时间,处理字符串等操作,虽然我们目前要用到的一个就是获取GUID但是以后我们可能还要用到别的,所以我都把他放进入了 然后在App.Admin创建一个核心文件夹,Core,放入LogHandler这个类是主要是写入日志,避免在每次都要实例化这个类,我把他封装起来,大家一看就知道。 然后修改Controller的Create方法,代码如下一一给出。 阅读全文
posted @  2013-11-22 22:55 ymnets 阅读(2983) |  评论 (12)  编辑
摘要: 上一节我们讲了如何捕获异常和记录日志,这一节我们讲,没有捕获的或者忘记捕获的异常包括404错误等,我们统一处理这个异常。这一讲是利用 Application_Error 捕获所有异常 阅读全文
posted @  2013-11-22 22:11 ymnets 阅读(1348) |  评论 (8)  编辑
摘要: 系统需要越来越自动化,我们需要引入日志记录和异常捕获管理员的操作记录需要被记录,看出哪些模块是频繁操作,分析哪些是不必要的功能,哪些是需要被优化的。系统的异常需要被捕获,而不是将系统出错显示出来给用户就不了了知。我们需要异常日志不断改进系统。我们老说用户,我们还没有用户权限的表,所以我们在Home中先加入一个虚拟用户吧!首先我们创建一个用户类AccountModel放在App.Models下的Sys文件夹下using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace App 阅读全文
posted @  2013-11-20 22:44 ymnets 阅读(1802) |  评论 (19)  编辑
摘要: 似乎我们需要更多的模块了,我们有一个样例程序,可以帮助我们以后的系统开发做很多对照,我们稍后还有系统日志和系统异常的记录,这时浏览发生了困难,我们这一节来完成一个大家比较喜欢的东西吧,系统菜单栏,我们系统左边预留了一个位置,那里存放菜单,菜单在这里主要可以分为两种, 1. outlook模式,可以用easyui的accordion,做起来可以很漂亮,博客园很多人写的系统,我都看到了用这个,菜单前面还可以放菜单图标,这里给大家看一个效果(这是J-UI富客户端框架的菜单栏)优点是漂亮啊,缺点也很明显,只有两层结构,系统庞大,菜单太多,显示就很麻烦了,不够用和不好看,accordion配合tree. 阅读全文
posted @  2013-11-19 23:02 ymnets 阅读(4268) |  评论 (75)  编辑
摘要: 在第八讲中,我们已经做到了怎么样分页。这一讲主要讲增删改查。第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下。这讲主要是,制作漂亮的工具栏,虽然easyui的datagrid已经自带可以设置工具栏,我们还是要提取出来,为以后权限控制做更好的准备。前端代码没有逻辑结果,这也许是我写代码以来写得最轻松的,但也是最繁琐的,因为美工我不是强项,每一次调整都非常的困难,最后我把他调成了这样了:看得过去的鼓掌一下。样式已经包含在附加代码中了。大家只要加入以下HTML代码到index上就可以了查询新增编辑详细删除导出刷新View Code 有能力的朋友再优化一下样式好,我们用jquery为按钮添 阅读全文
posted @  2013-11-19 08:34 ymnets 阅读(2844) |  评论 (25)  编辑
摘要: 上一节我们讲了,DataGrid获取数据的一些用法,这一节讲DataGrid的分页DataGrid将传递“当前页码”“每页条数”控制器获取参数之后交给BLL层处理逻辑和分页,返回总页数和当前页的数据最后交给DataGrid处理课外:从此次前端的处理速度我看出,没有以前的JQGrid控件的处理数据快。首先在让DataGrid支持分页,我们需要加入几个属性是否启用分页:pagination 默认是false每页数量:pageSize 默认10可选择每页数量:pageList 默认[10,20,30,40,50]排序字段:sortName 默认null排序类型:sortOrder 默认ascOK加入 阅读全文
posted @  2013-11-18 21:31 ymnets 阅读(2616) |  评论 (32)  编辑
摘要: 没有源码的同学跳到第六讲下载源码再来。我们需要漂亮的UI,不要系统自动生成的垃圾UI。我们在大数据面前,我们要减少页面的压力,不要在页面遍历List我们选择Easyui的DataGrid最为本系统的表格展示效果本节知识点:根据DataGrid json格式在controller制作json格式给DataGrid用我们的系统似乎越来越有趣了、首先从前端入手,开打View下面的Shared创建一个视图模版 Main @Styles.Render("~/Content/css") @Styles.Render("~/Content/themes/blue/css&quo 阅读全文
posted @  2013-11-17 10:29 ymnets 阅读(2481) |  评论 (6)  编辑
摘要: Unity 2.x依赖注入(控制反转)IOC,对于没有大项目经验的童鞋来说,这些都是陌生的名词,甚至有些同学还停留在拉控件的阶段。您可以访问http://unity.codeplex.com/releases得到最新版本的Unity现在。当然,如果您在您的visual studio 中安装了Nuget 包管理器,你可以直接在Nuget中获取到最新版本的Unity。貌似最新是3了,第5讲我们糟糕的代码演示了接口如何用这里http://unity.codeplex.com/documentation我们找到了帮助文档大家可以下载下来看看我们采用的是构造函数注入,运行时注入。这块的概念可以算算是本系 阅读全文
posted @  2013-11-16 20:42 ymnets 阅读(3162) |  评论 (20)  编辑
摘要: 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系。我们把Controllers分离出来了BLL层和DAL层BLL专注于业务上的处理DAL专注于数据访问层的处理而Controller跟清楚的与View交互我们上一讲已经在EF添加了一个实体SysSample下面我们创建IDAL,DAL,IBLL,BLL的代码吧using App.Models;using System.Linq;namespace App.IDAL{ public interface ISysSampleRepository { /// /// 获取列表 ... 阅读全文
posted @  2013-11-16 10:24 ymnets 阅读(2247) |  评论 (7)  编辑
摘要: 进行本次文章之前,我们可能需要补充一些基本知识。首先我们系统是基于接口编程的,我们为什么要使用借口编程,其实这是应用了一种企业应用架构模式Repository(仓储) 一种用来封装存储,读取和查找行为的机制,它模拟了一个对象集合。 支持在领域和数据映射层之间实现彻底分离和单向依赖关系的目标。接口编程 最主要的目的是使关注点分离,让开发人员各司其职 代码封存保密,分包开发,无需要给予逻辑结构代码,只需要给予接口文件 缺点:设计困难,比传统的三层,单类模式困难,但是接口程序员工资都很高!AOP(面向方面编程) 我们为了弥补面向对象缺陷,我们系统将引入面向方面编程 主要用于日志记录,事... 阅读全文
posted @  2013-11-16 09:36 ymnets 阅读(3070) |  评论 (15)  编辑
摘要: 良好的登录页面是系统的唯一入口,良心说,我是很难做出漂亮的登录界面,所以有点违背本文的标题,因为我不是一个美工。汗..!第二讲我已经发布了源码,我们添加一个Account空控制器,虽然后台未实现,但是以后我们就要用到了。添加index视图,以下代码@{ Layout = null; } 系统登录 @Styles.Render("~/Content/themes/blue/css") YmNets.cnblogs.com MVC4... 阅读全文
posted @  2013-11-15 22:16 ymnets 阅读(2638) |  评论 (6)  编辑
摘要: 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧。用户的体验已经需要越来越注重,这次我们是左右分栏,左边是系统菜单,右边是一个以tabs页组成的页面集合,每一个tab都可以单独刷新和关闭,因为他们会是一个iframe工欲善其事必先利其器。需要用到以下工具。Visual Studio 2012您可以安装MVC4 for vs2010用VS2010来开发,但是貌似你将不能使用EF5.0将会是EF4.4版本,但这没有多大的关系。MVC4将挂载在.NET Framework4.5上。好!打开我们熟悉的VS创建一个空解决方案。我起了个名字叫AppSolution,类库命名空间将与App开口,如Ap 阅读全文
posted @  2013-11-15 21:28 ymnets 阅读(4536) |  评论 (41)  编辑
摘要: 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客。博客园园龄都1年了,却一直都是空空的,网上后台管理系统,权限管理系统多如猴毛,各个大虾都有自己的想法和方式。当然我还未能是大虾,前言做一件事情之前总会有前言,首先本项目的原型是我之前在一家公司研发的一个制造业ERP系统,已经上线并开始运行,按道理来说这是一套合格的系统方案。之前原型是Asp.net MVC3.0+EF4.1+Unity2.x+easyui+jqgrid 原型效果图,由于是公司项目无法带出,这个升级版本,我也是从头编写,一行行代码打出来的。基于接口编程。经过重构我把他升级为Asp.net mvc4.0与EF5. 阅读全文

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(26)-权限管理系统-分配角色给用户
摘要: 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(25)-权限管理系统-系统管理员(附生成器)由于25讲用代码生成器生成代码,我没有把代码贴出,导致文章字数过少,在主页下架,有兴趣的朋友请追溯到25讲中,来生成用户管理模块。由于之前做了将权限赋给角色,还需要做将角色组赋给用户,和将用户赋给角色组,一个用户可以拥有多个角色组,一个角色组包含多个用户,打开模块管理,添加一个分配的操作码并在角色权限设置授权给他在SysUser的Index添加以下按钮@Html.ToolButton("btnAllot", "icon-share&q 阅读全文
posted @  2014-02-21 11:26 ymnets 阅读(735) |  评论 (7)  编辑
摘要: 这一节我们要着手建立系统管理员表,但发布之前,我先发布一个代码生成器给大家先用着。这个生成器是为这个项目而生的,理论不能用于其他项目,而且写得比较潦草,但能用下载地址有兴趣要生成器源码的在群里就能获取到,我已经上传到群文件,解压代码生成器打开App.CodeHelper.exe编辑最底部的数据库链接,改成你要生成的数据库,左边的菜单栏是你要生成的数据库表,如图所示:代码生成器很简单的生成了所有层的代码。生成的Models层有写自定义验证的错误,大家自己去掉即可关于自定义验证大家有兴趣可以去找找其他文章。这里我自定义验证,我没发布,Ok,我们选择左边的SysUser表来生成项目的所有层代码按道理 阅读全文
posted @  2014-02-20 14:14 ymnets 阅读(255) |  评论 (7)  编辑
摘要: 过了个年回来,回顾一下,我们上次讲了角色管理,我们这一次来讲将权限授权给角色,这一节也是大家比较关心的。因为我们已经跑通了整个系统,知道权限的流转,我们先来看一张图这张图主要分要3块,角色组----系统模块----操作码授权选择角色组(表示要授权的角色,选择需要授权的模块,最后授权操作码。当存在一个操作码时候,我们应该改变SysRight表中的rightflag字段,表示他有权限。不知道大家是否还记得,这个图也是我们要做的。由于图中用的是JQGrid看起来跟Easyui有点差别,但是方式却是一样的)回到头看到SysRightOperate表的IsValid,我们将授权角色和模块和操作码这3张表 阅读全文
posted @  2014-02-12 21:18 ymnets 阅读(1555) |  评论 (10)  编辑
摘要: 距离上次发布22讲已经有少许日子了,真是太抱歉,最近年关项目比较急,时间太紧,没有时间发布.请大家见谅接下来我们的目标是角色组管理角色组权限设置用户管理把角色组授权给用户给用户分配角色组所以最少我们还要讲多5讲才能结束这个管理系统,经过之前的样例程序,我们很熟悉这个套路了,如果你很喜欢这个系列,你可以为这种重复性的动作写一个简单的代码生成器,或者一套强大的T4模版,其实这2个我都有,而且也是刚写的,以后系统完善了,给发布出来。是不是还可以呢,哈哈,T4我也写了一套,但毕竟还是没有winfrom来得方便。接下来我们在之前做好的模块管理,在22讲中,添加角色组管理的记录和操作码,如图目前我是需要添 阅读全文
posted @  2014-01-11 23:14 ymnets 阅读(1885) |  评论 (22)  编辑
摘要: 本节演示了Easyui制作菜单,即无限级别树的做法,以及DataGrid之间的联动,我也是和大家一起学习,我也是Easyui的新手,如有不足,请大家见谅 阅读全文
posted @  2013-12-24 09:00 ymnets 阅读(730) |  评论 (18)  编辑
摘要: 这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,在访问方法之前,执行一个验证机制来判断是否有操作权限(如:增删改等) 原理:通过MVC自带筛选器,在筛选器分解路由的Action和controller来验证是否有权限。 阅读全文
posted @  2013-12-11 00:01 ymnets 阅读(2510) |  评论 (19)  编辑
摘要: 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多的时间来更新,多谢大家的一路支持.如果你觉得好,记得帮我点击推荐^-^我们在之前已经插入一些真实数据,其中包含了一个用户和样例程序SysSample的权限,并实现了用户的登录。但有的朋友对表还是有疑惑,通过下面的linq查询,应该你就没有这个困惑了。不出意外,我们的菜单栏将只显示样例程序这个模块。这就简单了,我们已经有了获取菜单栏的类了,只要加入用户参与判断即可,所以我们将修改IBLL BLL IDAL DAL层的Home类(红色为原来的,绿色为最新修改的)List GetMenuByPersonId(string module 阅读全文
posted @  2013-12-04 21:15 ymnets 阅读(1561) |  评论 (7)  编辑
摘要: 我们之前做了验证码,登录界面,却没有登录实际的代码,我们这次先把用户登录先完成了,要不权限是讲不下去了把我们之前的表更新到EF中去登录在Account控制器,所以我们要添加Account的Model,BLL,DALAccountModel我们已经创建好了,下面是DAL和BLL的类using System;using System.Collections.Generic;using System.Linq;using System.Text;using App.Models;namespace App.IDAL{ public interface IAccountRepository ... 阅读全文
posted @  2013-12-03 20:35 ymnets 阅读(1803) |  评论 (8)  编辑
摘要: 这一节,我们插入数据来看看数据流,让各位同学,知道这个权限表交互是怎么一个流程,免得大家后天雾里来雾里去首先我再解释一些表,SysUser和SysRole表不用解释了。SysRoleSysUser:这个是角色和用户的对应表 一个角色可以对应多个用户,一个用户可以对应多个角色SysModuleOperate:模块的操作码表,我把每个Action都看作是一个操作码,或者每个方法可以看作是一个操作码SysRight:这个是角色和模块的关系表,只有被模块授权的角色才能设置权限SysRightOperate:这个是角色拥有的操作码,这个表间接和操作码有关联现在我们来插入一些数据来看看他们之间的关系,我们 阅读全文
posted @  2013-12-01 11:41 ymnets 阅读(2200) |  评论 (14)  编辑
摘要: 使20行的代码精简成2行,利用LINQ动态排序,中间用到一些反射,需要一些反射的基本知识 阅读全文
posted @  2013-11-28 08:32 ymnets 阅读(2189) |  评论 (9)  编辑
摘要: 我们上一节建了数据库的表,但我发现很多东西还未完善起来,比如验证码,我们先做好验证码吧,验证码我们再熟悉不过了,为了防止恶意的登录,我们必须在登录页面加入验证码,下面我将分享一个验证码,这个是用C#画的,原理是,生成一个随机4位数,将其保存为session或者是cookie形式,将用户输入的验证码进行对比,验证码可以是一个视图cshtml,或者是一个aspx页面,也可以是一个ashx一般处理程序,我们这里用ashx来显示在App.Admin下的Core文件夹下新建一个一般处理文件verify_code.ashx,复制以下代码(此验证码适用aspx程序的)using System;using S 阅读全文
posted @  2013-11-27 21:34 ymnets 阅读(1944) |  评论 (19)  编辑
摘要: 这节我们说下权限系统的特点,本系统采用的是MVC4+EF5+IOC 接口编程的架构,其中的权限树用的是DWTree,功能上做到灵活,授权操控细致,权限可以细到按钮级别 ,为了部署简单,导致设计和编码上也是比较复杂该系统主要功能如下: 自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的 按模块分配权限,或者稍微先进点的规定死某几个操作了)。 无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行 分类管理。 灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的 操作按需分配给各模块)。 对所有用户基础信息进行管理,实行有效期机制,过期自动 阅读全文
posted @  2013-11-25 23:04 ymnets 阅读(1977) |  评论 (20)  编辑
摘要: 实际上是Json格式化问题,我们应该在返回json的时候进行格式化,我们需要重写系统的JsonResult类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web.Mvc;using System.Text.RegularExpressions;using System.Web;using System.Web.Script.Serialization;namespace App.Common{ public class ToJsonResult ... 阅读全文
posted @  2013-11-23 19:24 ymnets 阅读(724) |  评论 (3)  编辑
摘要: 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结。首先这是一个团队开发项目,基于接口编程,我们从EasyUI搭建系统的框架开始,开始了一个样例程序对EasyUI的DataGrid进行了操作,并实现Unity的注入到容器,使程序的性能大大提升,代码质量上升,更佳利于单元测试,使用日志和异常坚固系统稳定性。 阅读全文
posted @  2013-11-23 17:55 ymnets 阅读(1763) |  评论 (9)  编辑
摘要: 上一讲我们做了日志与异常的结果显示列表,这一节我们讲要把他应用系统中来。 首先我们在App.Common类库中创建一个通用类ResultHelper,这个类里面写了,获取一个GUID,获取当前时间,处理字符串等操作,虽然我们目前要用到的一个就是获取GUID但是以后我们可能还要用到别的,所以我都把他放进入了 然后在App.Admin创建一个核心文件夹,Core,放入LogHandler这个类是主要是写入日志,避免在每次都要实例化这个类,我把他封装起来,大家一看就知道。 然后修改Controller的Create方法,代码如下一一给出。 阅读全文
posted @  2013-11-22 22:55 ymnets 阅读(2983) |  评论 (12)  编辑
摘要: 上一节我们讲了如何捕获异常和记录日志,这一节我们讲,没有捕获的或者忘记捕获的异常包括404错误等,我们统一处理这个异常。这一讲是利用 Application_Error 捕获所有异常 阅读全文
posted @  2013-11-22 22:11 ymnets 阅读(1348) |  评论 (8)  编辑
摘要: 系统需要越来越自动化,我们需要引入日志记录和异常捕获管理员的操作记录需要被记录,看出哪些模块是频繁操作,分析哪些是不必要的功能,哪些是需要被优化的。系统的异常需要被捕获,而不是将系统出错显示出来给用户就不了了知。我们需要异常日志不断改进系统。我们老说用户,我们还没有用户权限的表,所以我们在Home中先加入一个虚拟用户吧!首先我们创建一个用户类AccountModel放在App.Models下的Sys文件夹下using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace App 阅读全文
posted @  2013-11-20 22:44 ymnets 阅读(1802) |  评论 (19)  编辑
摘要: 似乎我们需要更多的模块了,我们有一个样例程序,可以帮助我们以后的系统开发做很多对照,我们稍后还有系统日志和系统异常的记录,这时浏览发生了困难,我们这一节来完成一个大家比较喜欢的东西吧,系统菜单栏,我们系统左边预留了一个位置,那里存放菜单,菜单在这里主要可以分为两种, 1. outlook模式,可以用easyui的accordion,做起来可以很漂亮,博客园很多人写的系统,我都看到了用这个,菜单前面还可以放菜单图标,这里给大家看一个效果(这是J-UI富客户端框架的菜单栏)优点是漂亮啊,缺点也很明显,只有两层结构,系统庞大,菜单太多,显示就很麻烦了,不够用和不好看,accordion配合tree. 阅读全文
posted @  2013-11-19 23:02 ymnets 阅读(4268) |  评论 (75)  编辑
摘要: 在第八讲中,我们已经做到了怎么样分页。这一讲主要讲增删改查。第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下。这讲主要是,制作漂亮的工具栏,虽然easyui的datagrid已经自带可以设置工具栏,我们还是要提取出来,为以后权限控制做更好的准备。前端代码没有逻辑结果,这也许是我写代码以来写得最轻松的,但也是最繁琐的,因为美工我不是强项,每一次调整都非常的困难,最后我把他调成了这样了:看得过去的鼓掌一下。样式已经包含在附加代码中了。大家只要加入以下HTML代码到index上就可以了查询新增编辑详细删除导出刷新View Code 有能力的朋友再优化一下样式好,我们用jquery为按钮添 阅读全文
posted @  2013-11-19 08:34 ymnets 阅读(2844) |  评论 (25)  编辑
摘要: 上一节我们讲了,DataGrid获取数据的一些用法,这一节讲DataGrid的分页DataGrid将传递“当前页码”“每页条数”控制器获取参数之后交给BLL层处理逻辑和分页,返回总页数和当前页的数据最后交给DataGrid处理课外:从此次前端的处理速度我看出,没有以前的JQGrid控件的处理数据快。首先在让DataGrid支持分页,我们需要加入几个属性是否启用分页:pagination 默认是false每页数量:pageSize 默认10可选择每页数量:pageList 默认[10,20,30,40,50]排序字段:sortName 默认null排序类型:sortOrder 默认ascOK加入 阅读全文
posted @  2013-11-18 21:31 ymnets 阅读(2616) |  评论 (32)  编辑
摘要: 没有源码的同学跳到第六讲下载源码再来。我们需要漂亮的UI,不要系统自动生成的垃圾UI。我们在大数据面前,我们要减少页面的压力,不要在页面遍历List我们选择Easyui的DataGrid最为本系统的表格展示效果本节知识点:根据DataGrid json格式在controller制作json格式给DataGrid用我们的系统似乎越来越有趣了、首先从前端入手,开打View下面的Shared创建一个视图模版 Main @Styles.Render("~/Content/css") @Styles.Render("~/Content/themes/blue/css&quo 阅读全文
posted @  2013-11-17 10:29 ymnets 阅读(2481) |  评论 (6)  编辑
摘要: Unity 2.x依赖注入(控制反转)IOC,对于没有大项目经验的童鞋来说,这些都是陌生的名词,甚至有些同学还停留在拉控件的阶段。您可以访问http://unity.codeplex.com/releases得到最新版本的Unity现在。当然,如果您在您的visual studio 中安装了Nuget 包管理器,你可以直接在Nuget中获取到最新版本的Unity。貌似最新是3了,第5讲我们糟糕的代码演示了接口如何用这里http://unity.codeplex.com/documentation我们找到了帮助文档大家可以下载下来看看我们采用的是构造函数注入,运行时注入。这块的概念可以算算是本系 阅读全文
posted @  2013-11-16 20:42 ymnets 阅读(3162) |  评论 (20)  编辑
摘要: 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系。我们把Controllers分离出来了BLL层和DAL层BLL专注于业务上的处理DAL专注于数据访问层的处理而Controller跟清楚的与View交互我们上一讲已经在EF添加了一个实体SysSample下面我们创建IDAL,DAL,IBLL,BLL的代码吧using App.Models;using System.Linq;namespace App.IDAL{ public interface ISysSampleRepository { /// /// 获取列表 ... 阅读全文
posted @  2013-11-16 10:24 ymnets 阅读(2247) |  评论 (7)  编辑
摘要: 进行本次文章之前,我们可能需要补充一些基本知识。首先我们系统是基于接口编程的,我们为什么要使用借口编程,其实这是应用了一种企业应用架构模式Repository(仓储) 一种用来封装存储,读取和查找行为的机制,它模拟了一个对象集合。 支持在领域和数据映射层之间实现彻底分离和单向依赖关系的目标。接口编程 最主要的目的是使关注点分离,让开发人员各司其职 代码封存保密,分包开发,无需要给予逻辑结构代码,只需要给予接口文件 缺点:设计困难,比传统的三层,单类模式困难,但是接口程序员工资都很高!AOP(面向方面编程) 我们为了弥补面向对象缺陷,我们系统将引入面向方面编程 主要用于日志记录,事... 阅读全文
posted @  2013-11-16 09:36 ymnets 阅读(3070) |  评论 (15)  编辑
摘要: 良好的登录页面是系统的唯一入口,良心说,我是很难做出漂亮的登录界面,所以有点违背本文的标题,因为我不是一个美工。汗..!第二讲我已经发布了源码,我们添加一个Account空控制器,虽然后台未实现,但是以后我们就要用到了。添加index视图,以下代码@{ Layout = null; } 系统登录 @Styles.Render("~/Content/themes/blue/css") YmNets.cnblogs.com MVC4... 阅读全文
posted @  2013-11-15 22:16 ymnets 阅读(2638) |  评论 (6)  编辑
摘要: 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧。用户的体验已经需要越来越注重,这次我们是左右分栏,左边是系统菜单,右边是一个以tabs页组成的页面集合,每一个tab都可以单独刷新和关闭,因为他们会是一个iframe工欲善其事必先利其器。需要用到以下工具。Visual Studio 2012您可以安装MVC4 for vs2010用VS2010来开发,但是貌似你将不能使用EF5.0将会是EF4.4版本,但这没有多大的关系。MVC4将挂载在.NET Framework4.5上。好!打开我们熟悉的VS创建一个空解决方案。我起了个名字叫AppSolution,类库命名空间将与App开口,如Ap 阅读全文
posted @  2013-11-15 21:28 ymnets 阅读(4536) |  评论 (41)  编辑
摘要: 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客。博客园园龄都1年了,却一直都是空空的,网上后台管理系统,权限管理系统多如猴毛,各个大虾都有自己的想法和方式。当然我还未能是大虾,前言做一件事情之前总会有前言,首先本项目的原型是我之前在一家公司研发的一个制造业ERP系统,已经上线并开始运行,按道理来说这是一套合格的系统方案。之前原型是Asp.net MVC3.0+EF4.1+Unity2.x+easyui+jqgrid 原型效果图,由于是公司项目无法带出,这个升级版本,我也是从头编写,一行行代码打出来的。基于接口编程。经过重构我把他升级为Asp.net mvc4.0与EF5. 阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值