设置原理:①在数据库里设置一个存放登陆身份的表,并且每个身份要设置id
②设置一个功能表,给予每个功能一个功能id
③设置一个权限表,然后在每个身份id设置功能id,
一、
1首先在App_Start里面添加一个类,定义一个全局的过滤器
2.在方案里找到Global.asax,在里面注册全局过滤器
3.在方案里添加一个存放权限过滤器的文件夹(我的命名为Filter)
创建一个类,继承ActionFilterAttribute
重写OnActionExecuting
获取用户请求的URL(需要根据路径确定权限)
检查是否登录(跳过登录的URL,不然就会登录路径死循环)
“/”是默认启动页面,“/Main/Login”是登录页面,“/Main/CreateValidImage”验 证码方法,“/Main/UserLogin”实际登录方法,这些都要跳过
将获取到的路径通过“/”进行分割(第一个为空字符串是因为路径一般都为/A/B/C/ 的形式,所以“/分割出来的第一个是空字符串”)
分割后的接收
4.获取session
设置一个try{}catch{};如果获取不到数据,则报异常,然后重新响应到登录页面
5.权限的检查(登录页面和主控制器不进行权限检查)
获取权限模块信息
6.权限处理
如果传过来的控制器或则区域名称没有权限,则响应一个“没有权限”的页面;
7.把这里定义的过滤器添加到先前建立FilterConfig类中