首页 新闻 会员 周边 捐助

AuthorizeCore中无法传递Roles的值

0
悬赏园豆:200 [已解决问题] 解决于 2017-04-05 09:48

在控制器controller中有一个action写的是:

        [HttpGet]
        [Authorize(Roles = "admins")]
        public ActionResult uploadFile()
        {
            return View();
        }

在Filters文件夹中写的是:

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase context)
        {
            if (Roles == "") {
                return false;
            }
            return true;
        }

监控代码发现AuthorizeCore中的Roles为"",根本没有将"admins"传递进来啊!
使用vs2013 asp.net mvc4
有没大神能帮忙看一下是怎么回事啊?!

明爷的主页 明爷 | 初学一级 | 园豆:9
提问于:2017-02-10 14:23
< >
分享
最佳答案
1

你完全理解错了Authorize...

你可以先看一下这个 参考 

收获园豆:200
约个十月天 | 菜鸟二级 |园豆:411 | 2017-02-11 21:59

感谢您的资料!!谢谢!

看完之后发现之前网上说的都是互相抄的,根本没屁用!

谢谢!

明爷 | 园豆:9 (初学一级) | 2017-03-01 19:38
其他回答(1)
0

你打的特性是Authorize不是CustomAuthorizeAttribute?

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-10 14:29

我改的试了的,改成这个还需要引用using demandManagement.Filters;

但还是不行,就是获取不到Roles的值。

支持(0) 反对(0) 明爷 | 园豆:9 (初学一级) | 2017-02-10 14:39

@明爷: 改了之后的代码呢.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-10 14:47

@吴瑞祥: 

        [HttpGet]
        //[Authorize(Roles = "admins")]
        [CustomAuthorize(Roles = "admins")]
        public ActionResult uploadFile()
        {
            return View();
        }

 

就是这样撒,但是还是获取不到Roles的值

 

支持(0) 反对(0) 明爷 | 园豆:9 (初学一级) | 2017-02-10 15:11

@明爷: 

 protected override bool AuthorizeCore(HttpContextBase context)
        {
            if (Roles == "") {
                return false;
            }
            return true;
        }

你在这里打断点了吗

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-10 15:44

@吴瑞祥: 

我现在的代码,controller中的action是:

 

我filter中的代码是:

总是不能获取这个值,醉了。

支持(0) 反对(0) 明爷 | 园豆:9 (初学一级) | 2017-02-10 18:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册