如何使用ASP.NET Web API在ActionFilterAttribute
上测试localhost?我想跳过SSL检查。
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 :(得分:3)
如果您只想测试请求URI是否为localhost,那么URI上的IsLoopback应该可以正常工作。
但事情就是这样......请求URI很容易被非本地计算机的计算机欺骗。因此,任何远程计算机实际上都可以向您发送带有localhost主机头的请求。
更好的方法是在博客文章中使用菲利普的建议:
http://www.strathweb.com/2013/01/adding-request-islocal-to-asp-net-web-api/
这应该适用于selfhost和webhost以及客户端的IP地址是否为环回。
答案 1 :(得分:1)
看起来这样有效。如果我不对,请告诉我。
request.RequestUri.IsLoopback