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用于后台管理平台的权限控制, 设计思路非常的优美, 而且编程确实非常的方便和简洁. 唯一的不足, 我觉得配置稍有些繁琐. 当时我有个小想法, 觉得可 ...
随机推荐
- press_keycode API 参数查询
用法 driver.press_ keycode(‘4’) 参数查找url:https://www.cnblogs.com/larack/p/4223465.html
- shell 13文件包含
同其他语言一样,shell也可以包含外部脚本.执行引用脚本可以使用source或 . 示例1 test.sh #shell #!/bin/sh echo "test.sh开始执行" ...
- IaaS,PaaS,SaaS 的区别和联系
原文:http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html 越来越多的软件,开始采用云服务. 云服务只是一个统称,可以分成三大类. Ia ...
- 由一条普通的link引用引发的无数问号,大家能回答的帮忙回答回答吧.
<link type="text/css" rel="stylesheet" href="1.css" /> 对于前台工作者来说 ...
- ubuntu 18.04下svn的安装与基本命令
一.安装: apt-get install subversion 二.基本命令 1.将文件checkout到本地目录 svn checkout path(path是服务器 上的目录)例如:svn ch ...
- storm的可靠性
消息确认机制: 在数据发送的过程中可能会数据丢失导致没能接收到,spout有个超时时间(默认是30S),如果30S过去了还是没有接收到数据,也认为是处理失败. 运行结果都是处理成功 参考代码Storm ...
- 洛谷P1414 又是毕业季II
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定 ...
- 目前学习的爬取小数据图片zzz
import os import threading import re import time from lxml import etree all_img_urls = [] # 图片列表页面的数 ...
- Android SDK的安装与环境配置
一.Android SDK工具下载.安装 Android SDK工具下载:http://www.androiddevtools.cn/ SDK下载页面如下,由于电脑Windows系统所以下载的Wind ...
- Visual Studio自动添加头部注释
VS2013 自动添加头部注释 1.找到VS2013的安装目录 下文以安装目录 C:\Program Files (x86)\Microsoft Visual Studio 12.0 为例 2.修改C ...