【问题标题】:AllowAnonymous Attribute in ASP.NET MVC5ASP.NET MVC5 中的 AllowAnonymous 属性
【发布时间】:2020-10-19 22:36:25
【问题描述】:

我正在开发一个较旧的 ASP.NET 项目并在 IISExpress 中进行调试,并实现了一个不需要身份验证/匿名的 API 控制器方法(我相信该项目设置为 Windows 身份验证)。

在 APIController 中,我在方法上方添加了以下属性:

[System.Web.Mvc.AllowAnonymous]

在 web.config 文件中,我在正确的位置添加了以下内容:

<location path="api/GreenTime">
  <system.web>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

但是,当访问 API 控制器/方法时,浏览器会提示输入凭据,如果提供了域凭据,则会返回 401.2 错误。

【问题讨论】:

  • 你说它是一个API控制器?就像在 Web API 框架中一样?您是否注意到您使用的属性在 MVC 命名空间 (System.Web.Mvc) 中,而不是在 Web API 命名空间 (System.Web.Http) 中?你可能想要this attribute
  • 我也可以使用“System.Web.Http.AllowAnonymous”,不确定这是否正确。 Controller 继承自 ApiController。
  • 我只是在方法上方更改为 System.Web.Http.AllowAnonymous 属性,但不幸的是结果相同。
  • 移除 web.config 逻辑。你不需要它。
  • @mason 如果我像在我的 OP 中一样删除 web.config 块,则它不起作用。我设法弄清楚了,请参阅我的答案。谢谢!

标签: c# asp.net


【解决方案1】:

我发现了问题。 AnonymousAuthentication 在 VS 项目设置中设置为 false。您必须在解决方案资源管理器中单击项目并按 F4 找到设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-07
    • 2016-04-11
    • 2015-11-04
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多