Rit*_*man 8 asp.net iis windows-authentication asp.net-web-api
如果有一种方法只能为特定ASP.Net Web API控制器的特定操作启用Windows身份验证,我就会徘徊.我的Web API Web服务有几个具有大量操作的控制器,但只有一个控制器的一个操作需要Windows身份验证.此Web服务使用Web API 2.1实现,并托管在IIS(v7.5及更高版本)中.尽管如此,它是一个Intranet Web服务,我不想在控制器和不需要它的操作上启用Windows身份验证.如果有办法为特定控制器和操作启用Windows身份验证,请告诉我.
我的网络服务代码与下面的代码类似.只有Controller1.Action1实现的端点api/controller1/action1需要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);
}
}
Run Code Online (Sandbox Code Playgroud)
丽塔,谢谢你
小智 3
这是你想要的吗?将其添加到您的配置文件中。
<location path="api/controller1">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)