ASP.NET MVC 和 WebForm的权限控制
今天主要讲一下对于ASP.NET的页面级权限控制
数据结构:用户表、角色表、权限表、角色权限派生表
为用户添加权限的数据配置后,
自定义类对MVC继承Controller
对其内置方法Initialize进行重写。
对其进行登录判断和权限判断
然后将需要做权限控制的Controller进行对自定义类的继承
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace ZX.B2C.GoodBaby.UI.App_Start
{
public class BaseClass : Controller
{
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
if (!IsLogin())
{
Response.Redirect("/Home/toLogin");
}
string urlpath = Request.Url.AbsolutePath;
bool t = CheckPage(urlpath);//判断当前页面当前用户是不是有权限
if (!t)
{
Response.Write("<html><head><title>系统安全提示</title><script>alert('您没有权限进行当前操作,请重新选择用户登陆操作');location.href='/Home/Vi_Index.aspx'</script></head><body></body></html>");
Response.End();
}
}
protected Boolean IsLogin()
{
if (Request.Cookies["GoodBabyMemberCookie"] != null)
{
return true;
}
else
{
return false;
}
}
static bool CheckPage(string urlpath)
{
if (urlpath == "/Home/Index" || urlpath == "/Home/Vi_Index")
{
return true;
}
else
{
#region 自身业务逻辑对权限控制的判断 BLL.SystemInfo systemInfoBLL = new BLL.SystemInfo();
ZX.B2C.GoodBaby.Model.UserInfo userInfoModel = new Model.UserInfo(); userInfoModel.UserInfoId = Convert.ToInt32(ZX.B2C.GoodBaby.Common.CookieHelper.GetCookieValue("GoodBabyMemberCookie"));
List<Model.SystemInfo> systemInfoList = systemInfoBLL.UserRoleSystemInfoList(userInfoModel.UserInfoId);
systemInfoList = systemInfoList.Where(p => p.SystemInfoUrl == urlpath).ToList();
if (systemInfoList != null)
{
if (systemInfoList.Count > )
{
return true;
}
else
{
return false;
}
}
else
{
return false;
} #endregion }
}
}
}
public class HomeController : Controller
WebForm的权限控制方法
自定义类对Page进行继承
对其内置方法OnLoad进行重写
然后将需要做权限控制的Page进行对自定义类的继承
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI; namespace ZX.B2C.GoodBaby.UBack
{
public class BacePage:Page
{
public BacePage()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
BLL.UserInfo userInfoBLL = new BLL.UserInfo();
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
}
protected override void OnLoad(EventArgs e)//重写页面的load
{
BasePage_Load();//处理权限的Session的方法
base.OnLoad(e);
}
public void BasePage_Load()
{ if (Request.Cookies["AdminCookie"] == null)//在这里我们行判断用户有没有登陆如果登陆了我们再判断权限
{
Response.Write("<html><head><title>系统安全提示</title><script>alert('为了系统安全,请重新登陆');location.href='/Login/Index.aspx';</script></head><body></body></html>");
Response.End();
}
string urlpath = Request.Url.AbsolutePath;//取当前访问的页面
bool t =QuanXian.CheckPage(urlpath);//判断当前页面当前用户是不是有权限
if (!t)
{
Response.Write("<html><head><title>系统安全提示</title><script>alert('您没有权限进行当前操作,请重新选择用户登陆操作');location.href='/Home/Vi_Index.aspx'</script></head><body></body></html>");
Response.End();
} }
}
}
public partial class Add : BacePage
ASP.NET MVC 和 WebForm的权限控制的更多相关文章
- ASP.NET MVC使用过滤器进行权限控制
1.新建MVC项目 2.找到Models文件夹,新建 LoginCheckFilterAttribute 类 public class LoginCheckFilterAttribute : Acti ...
- ASP.NET MVC与WebForm区别
[转贴一] 使用ASP.NET MVC框架,创建默认项目,第一直观感觉就是地址都是Rewrite过的.对源码和配置文件稍加分析不难看出,MVC使用了httpModules来拦截地址请求,具体用到了Sy ...
- ASP.NET MVC 基于角色的权限控制系统的示例教程
上一次在 .NET MVC 用户权限管理示例教程中讲解了ASP.NET MVC 通过AuthorizeAttribute类的OnAuthorization方法讲解了粗粒度控制权限的方法,接下来讲解基于 ...
- (读书笔记)Asp.net Mvc 与WebForm 混合开发
根据项目实际需求,有时候会想在项目中实现Asp.net Mvc与Webform 混合开发,比如前台框架用MVC,后台框架用WebForm.其实要是实现也很简单,如下: (1)在MVC 中使用Webfo ...
- ASP.NET MVC显示WebForm网页或UserControl控件
ASP.NET MVC显示WebForm网页或UserControl控件 学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user ...
- Asp.net Mvc 与WebForm 混合开发
根据项目实际需求,有时候会想在项目中实现Asp.net Mvc与Webform 混合开发,比如前台框架用MVC,后台框架用WebForm.其实要是实现也很简单,如下: (1)在MVC 中使用Web ...
- [转]Asp.net Mvc 与WebForm 混合开发
本文转自:https://www.cnblogs.com/dooom/archive/2010/10/17/1853820.html 根据项目实际需求,有时候会想在项目中实现Asp.net Mvc与W ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- FineAdmin.Mvc 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统
FineAdmin.Mvc 介绍 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统RightControl后台layui模板不太好看,换成ok-admin v2.0重写一遍.项目 ...
随机推荐
- pg确定一张表最后被使用的时间
create or replace function table_file_access_info( IN schemaname text,IN tablename text,OUT last_acc ...
- 基于Photon 的 PUN+ 如何自动实现RPC呼叫的.
基于Photon 的 PUN+ 如何自动实现RPC呼叫的. 简单说函数标记成 RPC 类型的. void Hello() { Debug.Log("Hello"); PhotonV ...
- HDU - 6166:Senior Pan(顶点集合最短路&二进制分组)
Senior Pan fails in his discrete math exam again. So he asks Master ZKC to give him graph theory pro ...
- [BZOJ5133][CodePlus2017年12月]白金元首与独舞
bzoj luogu 题意 给你一个\(n*m\)的网格,每个位置上有一个箭头指向上或下或左或右.有些位置上还没有箭头,现在要求你在这些没有箭头的位置上填入箭头,使得从网格的任意一个位置开始,都可以沿 ...
- Multisim的电路分析方法
Multisim的电路分析方法:主要有直流工作点分析,交流分析,瞬态分析,傅里叶分析,噪声分析,失真分析,直流扫描分析, 灵敏度分析,参数扫描分析,温度扫描分析,零一极点分析,传递函数分析,最坏情况分 ...
- rac ASM下最简单归档开启/关闭方法
原创作品,出自 “深蓝的blog” 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47172639本次先来介绍一下在rac环 ...
- Linux 简单字符设备驱动
1.hello_drv.c (1) 初始化和卸载函数的格式是固定的,函数名自定义 (2) printk是内核的打印函数,用法与printf一致 (3) MODULE_LICENSE:模块代码支持开源协 ...
- PHP echo汉字出现乱码的情况之一
当然首先要理清楚到底是web服务端造成,php造成的,还是数据库造成的. 需要在头文件里UTF-8 <head> <meta http-equiv="Content-Typ ...
- Maven入门----介绍及环境搭建(一)
知识点: 介绍Maven 本机搭建Maven环境 DEMO测试 本地仓库迁出 Maven简介: 百度百科: 说到底就是一个项目管理工具. 本机搭建Maven环境: Maven的环境需要jdk环境的支持 ...
- java数组求输入平均值
真是学了后面忘了前面,一维数组都忘了 package com.c2; //总结类型转换不对,导致运行报错 //以及没有new,导致空指针异常 //引入流. import java.io.*; publ ...