2013-02-22 53 views
1

如何使用ASP.NET Web API在ActionFilterAttribute上测试本地主机?我想跳过SSL检查。在ASP.NET Web API上测试本地主机ActionFilterAttribute

public class RequireHttpsAttribute : ActionFilterAttribute 
    { 
     public override void OnActionExecuting(HttpActionContext actionContext) 
     { 
      var request = actionContext.Request; 
      if (request.RequestUri.Scheme != Uri.UriSchemeHttps) 
      { 
       throw new ValidationException(new SecureConnection()); 
      } 

      base.OnActionExecuting(actionContext); 
     } 
    } 
+0

什么都没有,常规的请求对象有IsLocal,但Web API没有。 – 2013-02-22 18:32:48

回答

3

如果您只是想测试请求URI是否为localhost,那么URI上的IsLoopback应该可以正常工作。

但是这里的东西......请求URI很容易被非本地计算机的电脑欺骗。因此,任何远程计算机都可以实际向您发送带有本地主机头的请求。

一个更好的办法是使用菲利普的建议在他的博客:

http://www.strathweb.com/2013/01/adding-request-islocal-to-asp-net-web-api/

这应该两个selfhost和网站托管商,无论是客户端的IP地址的工作是回送。

1

看起来像这样的作品。如果我不正确,请告诉我。

request.RequestUri.IsLoopback