zoukankan      html  css  js  c++  java
  • 公共的Controler,是给非授权的用户访问

    issue:

    我使用的环境是Vs2012 , 创建了MVC4的工程,然后在工程里面Webconfig, 添加了访问限制

        <authentication mode="Forms">       <forms loginUrl="~/Account/Login" timeout="2880" />     </authentication>

        <authorization>       <deny users="?" />       <allow users="*" />     </authorization>

    设置所有访问都拒绝匿名访问,只有授权用户才能访问,非授权的访问会跳转到登录页面 ~/Account/Login 

    然后问题是,我想加一个公共的Controler,是给非授权的用户访问,我给那个Controler加上

    [AllowAnonymous] 属性,允许匿名,但是很奇怪,所有访问这个匿名的Controler还是会跳转到Login,除非你登录了授权,才可以打开这个匿名的控制器,这个[AllowAnonymous]完全不起作用。

    solution:

    在BaseControler里面加一个[Authorize],所有要验证的页面都继承BaseControler, 不需要验证的就不继承。然后将WebConfig的权限控制限制去掉。

    备注:

      使用AllowAnonymous属性是用来跳过授权的 Authorize attribute 执行。标有使用AllowAnonymous操作方法始终可以访问所有用户,包括匿名用户。一般下面这三个特性是伴随着使用的:    

            AuthorizeAttribute:表示一个特性,该特性用于限制调用方对操作方法的访问。

            AllowAnonymousAttribute表示一个特性,该特性用于标记在授权期间要跳过 AuthorizeAttribute 的控制器和操作。

            InitializeSimpleMembershipAttribute:这个特性是来初始化数据库成员关系的,后面会讲到。

            请查看这个链接了解详细信息:  Asp.net Mvc4默认权限详细

  • 相关阅读:
    设计模式-外观模式
    多线程面试笔试题-1
    final 关键字
    java 继承 初始化顺序
    java内部类
    Python-面向对象-静态方法
    接口自动化测试框架搭建
    使用yaml设计测试用例进行单接口测试
    数据驱动测试--对excel文件的操作
    TCP协议详解
  • 原文地址:https://www.cnblogs.com/happy-Chen/p/3607190.html
Copyright © 2011-2022 走看看