如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证

2024-06-24

我想知道是否有一种方法可以仅为特定 ASP.Net Web API 控制器的特定操作启用 Windows 身份验证。我的 Web API Web 服务有几个具有多种操作的控制器,但只有一个控制器的一个操作需要 Windows 身份验证。此 Web 服务使用 Web API 2.1 实现,并托管在 IIS(v7.5 及更高版本)中。尽管它是一个 Intranet Web 服务,但我不想在不需要它的控制器和操作上启用 Windows 身份验证。请告诉我是否有办法为特定控制器和操作启用 Windows 身份验证。

我的网络服务代码类似于下面的代码。唯一端点api/控制器1/操作1实施者控制器1.动作1需要 Windows 身份验证。其余操作不需要 Windows 身份验证:

[RoutePrefix("api/controller1")]
public class Controller1: ApiController
{
    [Route("action1")]
    public HttpResponseMessage Action1()
    {
        return Request.CreateResponse<object>(HttpStatusCode.OK, null);
    }
    [Route("action2")]
    public HttpResponseMessage Action2()
    {
        return Request.CreateResponse<object>(HttpStatusCode.OK, null);
    }
}


[RoutePrefix("api/controller2")]
public class Controller2 : ApiController
{
    [Route("action1")]
    public HttpResponseMessage Action1()
    {
        return Request.CreateResponse<object>(HttpStatusCode.OK, null);
    }
    [Route("action2")]
    public HttpResponseMessage Action2()
    {
        return Request.CreateResponse<object>(HttpStatusCode.OK, null);
    }
}

谢谢你, 丽塔


这是你想要的吗?将其添加到您的配置文件中。

<location path="api/controller1">
  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
</location>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证 的相关文章

随机推荐