首页 新闻 会员 周边 捐助

mvc5 [authorize]属性无效

0
悬赏园豆:30 [已解决问题] 解决于 2015-05-07 16:57
    [Authorize]
    public class AdminController : Controller
    {

我在AdminController上设置了authorize属性,但是访问/admin时却没有跳转到登录页面,Request.IsAuthenticated值为false。

<authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="40000">
cgs的主页 cgs | 初学一级 | 园豆:132
提问于:2015-05-07 14:35
< >
分享
最佳答案
0

改为下面的试试:

<forms name="webapp" protection="All" loginUrl="~/Account/Login" timeout="40000">
收获园豆:30
dudu | 高人七级 |园豆:29570 | 2015-05-07 16:19

没用啊,和IOC容器有关系么,我用的Autofac,然后通过ControllerFactory注册的。

 var builder = new ContainerBuilder();
     builder.RegisterFilterProvider();
 var container = builder.Build();
 var controllerFactory = new InjectableControllerFactory(container);
        ControllerBuilder.Current.SetControllerFactory(controllerFactory);

 

cgs | 园豆:132 (初学一级) | 2015-05-07 16:32

@cgs: 有可能,你可以先不用Autofac试试。

dudu | 园豆:29570 (高人七级) | 2015-05-07 16:32

@dudu: 我把“builder.RegisterFilterProvider();”去掉就可以了。查了下文档,这是注册一个AutofacFilterProvider,您知道AutofacFilterProvider的功能是什么么,以前看很多例子里都有这句就加上了。

cgs | 园豆:132 (初学一级) | 2015-05-07 17:03

@cgs: 如果使用builder.RegisterFilterProvider();,可能需要在之后注册一下AuthorizeAttribute。

dudu | 园豆:29570 (高人七级) | 2015-05-07 17:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册