我有以下要求来实现访问控制列表

public class SecurityObject{

public string Key{get;set;}

public string DisplayName{get;set;}

public bool isAllowed{get;set;}

}

public class Role{

List AccessibleObjects{get;set;}

}

目前我使用表单身份验证进行基本授权 . 以下是我的代码

的Global.asax.cs

public class MvcApplication : System.Web.HttpApplication

{

public override void Init()

{

this.PostAuthenticateRequest += new

EventHandler(MvcApplication_PostAuthenticateRequest);

base.Init();

}

void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)

{

HttpCookie authCookie =

HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];

if (authCookie != null)

{

string encTicket = authCookie.Value;

if (!String.IsNullOrEmpty(encTicket))

{

FormsAuthenticationTicket ticket =

FormsAuthentication.Decrypt(encTicket);

string[] userData = ticket.UserData.Split(new string[] { "___" },

StringSplitOptions.None);

string[] roles = null;

if (userData.Length > 1)

{

roles = userData[1].Split(',');

}

MyCustomIdentity identity = new MyCustomIdentity(ticket);

GenericPrincipal principle = new GenericPrincipal(identity, roles);

HttpContext.Current.User = principle;

}

}

}}

我目前的控制器类

public class AdminController : Controller

{

[HttpPost, Authorize, ValidateAntiForgeryToken]

public ActionResult SaveUser(UserDetailViewModel viewModel)

{

}

}

我的目标控制器类

public class AdminController : Controller

{

[HttpPost, Authorize(ACLKey="USR_SAVE"), ValidateAntiForgeryToken]

public ActionResult SaveUser(UserDetailViewModel viewModel)

{

}

}

我希望我的action方法用ACLKey修饰,我想检查用户角色是否具有给定的密钥,并根据我需要执行或返回HttpUnauthorizedResult页面,即使是来自jQuery的Ajax请求 .

我提到很多像Customizing authorization in ASP.NET MVC但我没有找到一种方法来执行表单身份验证和我的自定义ACLKey检查 .

How do i parse the value USR_SAVE and process custom authentication using CustomAuthorizeFilter?

java 过滤器 加参数,自定义授权过滤器属性参数相关推荐

  1. java batch_Java EE 7 Batch中传递属性/参数的2种方式

    java batch 谈到Java EE 7批处理功能,有两种方法可以将属性/参数传递给块和批处理. 本快速指南向您展示了两种方式,在开发批处理Java EE 7方式时可能会经常使用它们. 1.运行前 ...

  2. 【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )

    文章目录 一.自定义闭包参数列表 1.定义一个自定义参数的闭包 2.定义多个自定义参数的闭包 3.为闭包参数指定默认值 二.完整代码示例 一.自定义闭包参数列表 如果要向 闭包 中 , 传递多个参数 ...

  3. Shiro【授权过滤器、与ehcache整合、验证码、记住我】

    2019独角兽企业重金招聘Python工程师标准>>> 前言 本文主要讲解的知识点有以下: Shiro授权过滤器使用 Shiro缓存 与Ehcache整合 Shiro应用->实 ...

  4. java加载字体文件_Java的加载自定义字体文件(.TTF)

    我在下面这段代码中使用,并将其与该堆栈跟踪出现:Java的加载自定义字体文件(.TTF) java.io.FileNotFoundException: font.ttf (No such file o ...

  5. .net授权获取openid_Asp.Net Core 中IdentityServer4 授权中心之自定义授权

    一.前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完 ...

  6. Asp.Net Core 中IdentityServer4 授权中心之自定义授权模式

    一.前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完美 ...

  7. 静默授权获取unionid_Asp.Net Core 中IdentityServer4 授权中心之自定义授权

    一.前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完 ...

  8. html flag属性,添加dede自定义文档属性

    文章简介 一般来说dede自带的那些自定义文档属性够用了,但是很多时候却发现一些比较特殊的地方需要再添加新的文档属性以供显示时就没办法了,所以我们还得到数据库中去修改才行. 适用范围及演示版本 适用范 ...

  9. (十六)ATP应用测试平台——java应用中的过滤器Filter、拦截器Interceptor、参数解析器Resolver、Aop切面,你会了吗?

    前言 过滤器Filter.拦截器Interceptor.参数解析器Resolver.Aop切面是我们应用开发中经常使用到的技术,到底该如何使用这些web附属功能, 本小节我们就分别介绍一下其各自的用法 ...

最新文章

  1. Spring Boot 和Apache Kafka的集成
  2. PortICASetDefaults.exe /o命令返回为空
  3. 【数据结构与算法】之深入解析“下一个更大元素II”的求解思路与算法示例
  4. 论文浅尝 | 基于知识图的问答变分推理
  5. android开发ui插件下载,TKUISDK-ANDROID
  6. 这个是帮朋友发的,。。。我也觉得挺无聊的。
  7. js与php时间戳,js时间戳与日期格式之间的互转
  8. microservices kubernetes
  9. c svchost 服务 dll_小机巧丨如何解决svchost一直占用网速和内存?
  10. textarea长度限制
  11. 开课吧里的python学习是真的吗-Python是个什么鬼?为何学英语的都在关注...
  12. cimco edit v5_iA Writer for Mac(写作软件)v5.6.3
  13. J-link固件修复记录
  14. python处理ts_python将ts转换成MP4
  15. 编码格式检测(中文乱码问题)
  16. XP下微软雅黑粗体不起作用(不能显示)的解决方法
  17. C Primer Plus 第十章学习总结……2015.4.30
  18. kali如何切换成中文
  19. change lan.php lanid,天融信负载均衡本地文件包含漏洞
  20. 数据库设计中各种键的含义

热门文章

  1. spring boot启用tomcat ssl
  2. linux正则表达式BRE
  3. Hyper-V安装(摘自本站)
  4. $this-load-view()
  5. golang error信息 转 字符串 x := fmt.Sprintf(“%s“, err)
  6. linux 图形界面 X Server 关闭 启动
  7. golang []byte 和 int 互转
  8. python3 bytes和bytearray总结
  9. it程序员刷题 面试 中文网站收集
  10. Linux 上与系统负载有关的命令