【问题标题】:Allow anonymous access to controller action允许匿名访问控制器操作
【发布时间】:2013-07-03 10:15:41
【问题描述】:

我需要允许任何未登录的用户执行控制器操作。

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]

【问题讨论】:

  • 在 Controller 类上方使用 [AllowAnonymous]

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


【解决方案1】:

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

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

【讨论】:

  • 嗯不适合我。不知道我做错了什么:(
【解决方案2】:

允许“*”的授权规则仅适用于登录用户。对于匿名用户,请使用“?”而是:

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

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

【讨论】:

  • 您是否还有其他可能被匹配的规则,这可能是更高的优先级?
猜你喜欢
  • 2012-01-05
  • 2020-02-16
  • 2015-06-13
  • 2010-10-16
  • 2021-11-21
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多