2013-02-22 44 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