Asp.net 允许在ApicController上使用匿名应用程序

Asp.net 允许在ApicController上使用匿名应用程序,asp.net,asp.net-mvc,asp.net-web-api,active-directory,windows-authentication,Asp.net,Asp.net Mvc,Asp.net Web Api,Active Directory,Windows Authentication,我正在开发一个ASP.NET MVC 5应用程序,其中包含C#和.NET Framework 4.5.1中的Web Api服务 我在Web.config上启用了,并在ASP.NET MVC控制器上添加了以下内容: [Authorize(Roles = @"MyDomain\MyRole")] public class ReportController : Controller 但是我不需要在ApiController上进行Windows身份验证。如何启用对ApiControllers的匿名访问

我正在开发一个ASP.NET MVC 5应用程序,其中包含C#和.NET Framework 4.5.1中的Web Api服务

我在
Web.config
上启用了
,并在ASP.NET MVC控制器上添加了以下内容:

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

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

要对webapi执行此操作,您可以在Web.Config中使用下面的

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

附加阅读:


除非您在控制器方法/类上指定了
[Authorize]
属性,否则您应该能够匿名使用api控制器。我这样问是因为我在IIS 7上的此配置有问题。在我将
禁用到
之后,我与
ApiControllers
一起工作时没有遇到任何问题。如果您在特定URL中公开api,则可以使用previos注释问题的解决方案:允许匿名访问web.config中的特定位置。如果这对您不起作用,请让我知道。问题是如何配置对Web API的匿名访问,而不是MVC。上面说的是使用MVC,而讨论的控制器是MVC控制器。不管怎样,我都会更新答案-你让我意识到配置丢失了。所以我只是更新了它,让它有一个?而不是*和ApiControllers的路径也许不太清楚,但让我引用标题:“允许ApiControllers上的匿名应用程序”和问题主体中的一些文字:“我如何才能启用对ApiControllers的匿名访问?”你是对的,如果你想重读我之前的评论,“…我会更新答案…”我已经把原始信息留在那里,因为它可能会被证明是有用的。我已经测试了你对
web.config
的修改,它可以工作。它在
ApiController
s上没有
[AllowAnonymous]
的情况下也可以工作。
<system.web>   <authentication mode="Windows" />
    <authorization>
      <deny users="?" />
    </authorization>  </system.web>