【问题标题】:Allows anonymous application on ApiControllers允许 ApiControllers 上的匿名应用程序
【发布时间】:2015-06-02 07:09:38
【问题描述】:

我正在用 C# 和 .NET Framework 4.5.1 开发一个带有 Web Api 服务的 ASP.NET MVC 5 应用程序。

我在 Web.config 上启用了 <authentication mode="Windows" /> 并在 ASP.NET MVC 控制器上添加了以下内容:

[Authorize(Roles = @"MyDomain\MyRole")]
public class ReportController : Controller

但我不需要ApiController 上的 Windows 身份验证。如何启用对ApiControllers 的匿名访问?

【问题讨论】:

  • 您应该能够匿名使用 api 控制器,除非您在控制器方法/类上指定了 [Authorize] 属性。
  • 我之所以这么问,是因为我在 IIS 7 上遇到了此配置的问题。在我将 <authentication mode="Windows" /> 禁用为 <authentication mode="None" /> 后,我使用 ApiControllers 没有问题。跨度>
  • 如果你在一个特定的 URL 中暴露你的 api,你可以使用前面评论问题的解决方案:允许匿名访问 web.config 中的特定位置。如果这对您不起作用,请告诉我。

标签: asp.net asp.net-mvc asp.net-web-api active-directory windows-authentication


【解决方案1】:

要为 webapi 执行此操作,您可以在 Web.Config 中使用以下内容

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

这意味着对于 api 控制器,允许任何用户(用 ? 表示)。如果您想做特定的控制器,可能值得将其更改为更具体。

它还假设您拒绝所有匿名用户的访问,并且您的 web.config 身份验证是这样的

<system.web>   <authentication mode="Windows" />
    <authorization>
      <deny users="?" />
    </authorization>  </system.web>

但是,如果您想在 MVC 控制器上允许它,您可以使用 [AllowAnonymous] 属性。

相关: Use Anonymous authentication in MVC4 on single controller when the whole application uses Windows Authenticaion

Disable Windows Authentication for WebAPI

Windows Authentication for ASP.NET MVC 4 - how it works, how to test it

补充阅读:

Windows Authentication ASP.NET

Authorize Attribute MSDN

Anonymous Attribute MSDN

【讨论】:

  • 问题问如何配置匿名访问Web API,而不是MVC。
  • 它用 MVC 表示,而有问题的控制器是 MVC 控制器。不管怎样,我都会更新答案 - 你让我意识到配置丢失了。所以我刚刚更新它有一个?而不是 * 和 api 的路径
  • 也许不是很清楚,但让我引用标题:“允许 ApiControllers 上的匿名应用程序”和问题正文中的一些文本:“如何启用对 ApiControllers 的匿名访问?”
  • 你是对的,如果你想重读我之前的评论'...我会更新答案...'我把原始信息留在那里,因为它可能会被证明有用。
  • 我已经测试了你的web.config 修改并且它有效。它也可以在 ApiControllers 上没有 [AllowAnonymous] 的情况下工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 2014-05-20
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 2015-10-09
相关资源
最近更新 更多