public void IsIpAllowed_ReturnsTrue_ForNonWhiteListedIps() { var req = new HttpRequestMessage(); req.Properties.Add(HttpPropertyKeys.RequestContextKey, new HttpRequestContext { IsLocal = false }); req.IsIpAllowed().ShouldBeFalse(); }
public void IsIpAllowed_ReturnsTrue_ForLocalIps() { var req = new HttpRequestMessage(); req.Properties.Add(HttpPropertyKeys.RequestContextKey, new HttpRequestContext { IsLocal = true }); req.IsIpAllowed().ShouldBeTrue(); }
public void IsIpAllowed_ReturnsTrue_ForWhiteListedIps() { var req = new HttpRequestMessage(); req.Properties.Add(HttpPropertyKeys.RequestContextKey, new HttpRequestContext { IsLocal = false }); req.Properties.Add("System.ServiceModel.Channels.RemoteEndpointMessageProperty", new IpConfig { Address = "192.168.0.196" }); req.IsIpAllowed().ShouldBeTrue(); }
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (request.IsIpAllowed()) { return await base.SendAsync(request, cancellationToken); } return request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cannot view this resource"); }