public override void OnActionExecuting(HttpActionContext actionContext) { var userIP = ((Microsoft.Owin.OwinContext)actionContext.Request.Properties["MS_OwinContext"]).Request.RemoteIpAddress; //var context = actionContext.Request.Properties["MS_OwinContext"] as System.Web.HttpContextBase; //string userIP = context.Request.UserHostAddress; var ok = AuthorizedIPRepository.GetAuthorizedIPs().Contains(userIP); if (!ok) { actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden) { Content = new StringContent("Unauthorized Access To System. Your IP has been logged.") }; return; } }
protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var context = request.Properties["MS_HttpContext"] as System.Web.HttpContextBase; string userIP = context.Request.UserHostAddress; var foundIP = AuthorizedIPRepository.GetAuthorizedIPs().FirstOrDefault(x => x == userIP); if (foundIP == null) { return(Task.Factory.StartNew(() => { return new HttpResponseMessage(HttpStatusCode.Forbidden) { Content = new StringContent("Unauthorized IP Address") }; })); } return(base.SendAsync(request, cancellationToken)); }