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

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. 个人作业1 四则运算题目生成程序
  2. 【干货】五天,谷歌如何制作一款App?
  3. 关于用Delphi开发的一些基本的套路
  4. oracle带输出参数存储,oracle带输入输出参数存储过程(包括sql分页功能)
  5. 计算机考试word教程,职称计算机考试Word教程:段落格式的编辑
  6. 引用和指针-内存的分配方式有几种
  7. eclipse开发jsf_在Eclipse上创建JSF / CDI Maven项目
  8. 获取【请求体】数据的3种方式 request.getInputStream() request.getInputStream() request.getReader()
  9. python 暂停程序 等待用户输入_遇上Python程序暂停时,不要慌,教你正确的处理方法...
  10. 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题
  11. 谁说男生不能美美哒?2020中国男士美妆市场洞察报告.pdf(附下载链接)
  12. python判断给定的手机号是否存在
  13. android 文件上传参数,Android OkHttp Post上传文件并且携带参数实例详解
  14. AD中元器件库对照表(一)
  15. 一步一步教你如何在手机上看电子书
  16. Win10登陆界面卡住,进去后无法打开网络相关的设置,谷歌浏览器无法上网
  17. 影子卫士中文注册版+系统保护的尚方宝剑、、
  18. Aircrack-ng破解WEP
  19. mysql strict_MySQL模式 Strict Mode知识点详解
  20. 洛谷 P2142 高精度减法

热门文章

  1. linux socket无延迟发送数据
  2. 升级SharePoint数据库到SQL Server 2005的一点心得
  3. 用SVN下载编译Spring3.2.4源码导入eclipse
  4. golang 简单tls协议 使用实例
  5. linux ssh 远程登陆 报错 software caused connection abort 解决方法
  6. python3 字符串替换 replace translate re.sub
  7. golang 多行字符串 字符串太长分行写
  8. Selenium+PhantomJS使用时报错原因及解决方案
  9. 网络流媒体协议 RTSP协议
  10. Linux简单的http服务器:SimpleHTTPServer