前言:时间很快,已经快到春节的时间了,这段时间因为生病,博客基本没更新,因此今天写一下咱们作的一个项目吧,是对权限的基本操做的操做,代码也就不怎么说了,直接上传源码和图片展现,下面咱们直接进入主题介绍这个项目和一些技术点:html
1.项目所用到的技术
(1)前台展现:ASP.NET MVC 3.0+Jquery EasyUI+Jquerygit
(2)开发环境:VS2012github
(3)数据库:SQL Server 2012面试
(4)代码管理:SVN数据库
(5)用到的技术:ASP.NET MVC,EF框架,Jquery EasyUI,Log4Net,VSS,微软T4模版安全
(6)数据库脚本在本项目的APP_Data文件夹下面,能够直接执行EF框架自动生成。微信
2.系统后台通用权限管理
(1) 什么是权限?在电子商务等信息系统中,任何一个操做都要进行权限的校验,若是有访问的权限则让用户继续访问,若是没有则终止这条请求,一句话,权限就是为了分类明确,安全性考虑。mvc
(2)权限管理:通常指根据系统设置的安全规则或者安全策略,用户能够访问并且只能访问本身被受权的资源。框架
(3)基于用户&动做的权限管理asp.net
(4)基于角色&动做的权限管理
(5)基于分组,角色,动做,用户权限管理。
3.建立权限的业务模型
(1) 使用EF框架的EDMX设计器来设计数据库的实现。
(2)注意事项:
1)使用ModelFirst的方式来设计数据库的完成
2)主键若是使用Guid类型则必须去掉自动增加
3)实体全部的属性必须设置备注
4)实体的字符串类型必须设置字符串的长度
5)命名规范必须符合要求
6)模型设计讨论和评审工做
(3)权限EF框架模型设置如图所示:
4.下面演示项目的功能
(1) 首先使用用户名密码都是admin登陆,这是在代码中作得一个没有验证权限的管理,也就是当你使用此用户名密码登陆进去的话全部的权限都是能够访问的。
(2)登陆页面:如图所示:
(3)展现Admin登陆的结果,如图所示
(4)而后咱们注册一个用户,如图所示
(5)而后咱们使用刚才的用户登陆系统,会出现访问为空的现象,如图所示:
(6)咱们能够给用户设置权限和角色,在上面有选择设置用户角色和设置用户特殊权限的信息设置,咱们给hjl用户设置了超级管理员的角色,如图所示:
(7)咱们在使用hjl登陆,如图所示:
(8)为何权限管理里面没有数据呢,那是由于此用户没有改权限查看这个,若是想要显示的话还要进行权限的设置,这里我就不设置了。
5.展现整个网站布局效果图:
6.源码下载
Kencery返回本系列开篇
做者:韩迎龙(Kencery)
出处:http://www.cnblogs.com/hanyinglong GitHub开源项目:https://github.com/kencery
MVC/.NET群:159227188
本页版权归做者和博客园全部,欢迎转载,但未经做者赞成必须保留此段声明, 且在文章页面明显位置给出原文连接,不然保留追究法律责任的权利
/// <summary>
/// 执行SQL对象返回受影响的行数
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public
int
ExcuteSql(
string
strSql,
object
[] parameters)
{
return
EFContextFactory.GetCurrentDbContext().Database.ExecuteSqlCommand(strSql, parameters);
}
/// <summary>
/// 执行SQL对象,返回查询到的实体集合
/// </summary>
/// <typeparam name="T">返回的实体集合</typeparam>
/// <param name="strSql">SQL语句</param>
/// <param name="parameters">传递的参数</param>
/// <returns></returns>
public
IQueryable<T> ExecuteSql<T>(
string
strSql,
object
[] parameters)
{
return
EFContextFactory.GetCurrentDbContext().Database.SqlQuery<T>(strSql, parameters).AsQueryable();
}
/// <summary>
/// 执行SQL对象,返回查询到的实体集合
/// </summary>
/// <typeparam name="T">返回的实体集合</typeparam>
/// <param name="strSql">SQL语句</param>
/// <returns></returns>
public
IQueryable<T> ExecuteSql<T>(
string
strSql)
{
return
EFContextFactory.GetCurrentDbContext().Database.SqlQuery<T>(strSql).AsQueryable();
}
上面就是封装的写SQL语句的方法,能够直接封装到DbSession中去调用这些方法