允许匿名访问控制器操作

时间:2013-07-03 10:15:42

标签: asp.net asp.net-mvc asp.net-mvc-3 forms-authentication

我需要在没有登录的情况下允许任何用户执行控制器操作。

public class ItemController : Controller
    {
       public ActionResult WebGallery()
        {
           //code goes here
            return View("WebGallery");
        }
}

我在web.config中尝试了以下代码,但仍然重定向到了登录页面。

  <location path="~/Item/WebGallery">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

我使用表单身份验证但不使用角色基本身份验证,因此我无法使用[Authorize]

2 个答案:

答案 0 :(得分:3)

修改位置路径属性对我有用。

<location path="Item/WebGallery">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

答案 1 :(得分:-1)

允许'*'的授权规则仅涵盖已登录的用户。对于匿名用户,请使用“?”代替:

<location path="~/Item/WebGallery">
    <system.web>
        <authorization>
           <allow users="?" />
        </authorization>
    </system.web>
</location>

有关ASP.NET授权规则的更多信息,请参见MSDN