コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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));
        }