我想知道是否有一种方法可以仅为特定 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(使用前将#替换为@)