MVC001之权限校验
参考网址:http://bbs.csdn.net/topics/370002739
http://blog.csdn.net/chenloveyue/article/details/7095522
http://zhidao.baidu.com/link?url=PJc1jFn52apSxE6QqCZwcq92z7XFpXH91Ud5U0ZuNKR3YO1djilKx3UM-tX1wcwk4oNYOhMGhX6B2YRABOlqMK(如何不让ActionResult不继续执行)
需求:想对每个事件进行权限控制,如:某个用户访问UserController的GetList Action时,需要先校验该用户是否有权限.
问题:
- 不想每个Action中都去写权限校验程序( protected override void OnAuthorization(AuthorizationContext filterContext))
- Controller如何获取当前用户(session)
- Controller如何获取用户访问哪个Controller及Action(filterContext.HttpContext.Request.Path)
先创建一个类MyPower,重写OnAuthorization
代码:
namespace MvcStudyStep.Controllers
{ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
public class MyPower : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!new PowerData().CheckUserPower(filterContext.HttpContext.Session["UserName"].ToString(), filterContext.HttpContext.Request.Path.Trim()))
{
filterContext.Result = new ContentResult { Content = "没有权限" }; MyMessage message = new MyMessage();
message.MyTitle = "没有权限";
message.MyDesc = filterContext.HttpContext.Session["UserName"].ToString()+":"+filterContext.HttpContext.Request.Path.Trim() ;
filterContext.HttpContext.Session["MessageObject"] = message;
filterContext.HttpContext.Response.Redirect("/Message/detail");
}
else
{
base.OnAuthorization(filterContext);
}
} }
}
filterContext.Result这段必须加上,否则后面的ActionResult还是会执行.
如:你删除记录时,系统会提示没有权限,但删除操作仍执行了.
问题:
1:ActionResult仍执行的问题(已解决)
2:定义一个通用信息页面(接受信息对象并显示在页面),本想在OnAuthorization中把信息对象构建好后直接传给View,不知到如何写,就用Session来传,感觉不太好.
MVC001之权限校验的更多相关文章
- Apache shiro之权限校验流程
从张开涛blog学习后整理:http://jinnianshilongnian.iteye.com/blog/2018398 图片原图比较大,建议将图片在新的选项卡打开后100%大小浏览 在权限校验中 ...
- Spring AOP 实现功能权限校验功能
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 使用拦截器实现未登录时跳转到登录界面的功能 1 拦截器SecurityInterceptor 2spring-mvcxml拦 ...
- 基于Spring Aop实现类似shiro的简单权限校验功能
在我们的web开发过程中,经常需要用到功能权限校验,验证用户是否有某个角色或者权限,目前有很多框架,如Shiro Shiro有基于自定义登录界面的版本,也有基于CAS登录的版本,目前我们的系统是基于C ...
- Unix 文件系统读写时权限校验
文件系统中的所有文件都是在读出或写入时进行权限校验 一个问题,如果一个用户对一个普通文件有读写权限,在使用vim编辑时,管理员撤销掉此用户对此文件的写入权限 那么,这个普通用户还可以将修改写入文件吗?
- 微服务架构 - 搭建docker本地镜像仓库并提供权限校验及UI界面
搭建docker本地镜像仓库并提供权限校验及UI界面 docker本地镜像仓库的作用跟maven私服差不多,特别是公司级或者是小组级开发好的docker仓库可以上传到本地镜像仓库中,需要用时,直接从本 ...
- python kafka权限校验client.id
kafka集群有权限校验,在连接时需要加入client.id.但pykafka不能配置该选项.搜索了一下,需要使用confluent-kafka 链接: https://blog.csdn.net/l ...
- SpringCloud(8)---zuul权限校验、接口限流
zuul权限校验.接口限流 一.权限校验搭建 正常项目开发时,权限校验可以考虑JWT和springSecurity结合进行权限校验,这个后期会总结,这里做个基于ZuulFilter过滤器进行一个简单的 ...
- 类Shiro权限校验框架的设计和实现(2)--对复杂权限表达式的支持
前言: 我看了下shiro好像默认不支持复杂表达式的权限校验, 它需要开发者自己去做些功能扩展的工作. 针对这个问题, 同时也会为了弥补上一篇文章提到的支持复杂表示需求, 特地尝试写一下解决方法. 本 ...
- 类Shiro权限校验框架的设计和实现
前言: 之前简单集成了springmvc和shiro用于后台管理平台的权限控制, 设计思路非常的优美, 而且编程确实非常的方便和简洁. 唯一的不足, 我觉得配置稍有些繁琐. 当时我有个小想法, 觉得可 ...
随机推荐
- Unity3D 3D模型在GUI之上显示
原来旧的办法是,在主相机上加一个Panel,把3D模型显示在Panel上面,感觉这个方法不怎么好,现在进行改进: 现在用了两个相机,一个相机显示3D模型,另外一个是主相机.还需要GUITexture来 ...
- [转][SVN]常用操作
1. Commit 提交当前代码到 SVN 服务器. 2. 引用第三方类库时,不要从安装位置引用,而是在解决方案下,添加一个 lib 的目录,把需要的程序集复制到这里,然后从 lib 目录引用. 3 ...
- docker 基础操作
1. 安装docker 系统centos 7.2 yum -y install docker-io service docker start 安装完毕后执行 docker version 或者dock ...
- 本地环境 XAMPP+phpStorm+XDebug+chrome配置和断点调试 注册方法
我的安装环境:XAMPP版本号V3.1.0 ;phpStorm版本8.0.3;windowsxp 32bit.您老人家先过目一下,不然怕影响意义. XAMPP.phpStorm 都直接安装在了D盘根目 ...
- Koa 框架整理
学习交流 Koa使用了ES6规范的generator和异步编程是一个更轻量级Web开发的框架,Koa 的先天优势在于 generator.由于是我个人的分享交流,所以Node基础.ES6标准.Web开 ...
- Python 实现双向链表(图解)
原文:https://blog.csdn.net/qq490691606/article/details/49948263 git 路径 https://github.com/wangpanjun/d ...
- express处理跨域问题,中间件 CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 1.不用中间件的话可以这样写: app.all('*', func ...
- Linux命令行下如何终止当前程序
Linux命令行下如何终止当前程序 快捷键: Ctrl+c 在命令行下起着终止当前执行程序的作用, Ctrl+d 相当于exit命令,退出当前shell Ctrl+s 挂起当前shell(保护作用很明 ...
- PYTHON实现识别图片
自学Python3第5天,今天突发奇想,想用Python识别图片里的文字.没想到Python实现图片文字识别这么简单,只需要一行代码就能搞定 #作者微信:2501902696 from PIL imp ...
- centos7.3安装zip,unzip
安装命令: yum install -y unzip zip