コード例 #1
0
ファイル: 1_Class1.cs プロジェクト: nblaurenciana-md/Websites
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            HttpRequestBase request = filterContext.HttpContext.Request;

            APIAccessLogItem item;

            try
            {
                var           controller = filterContext.Controller;
                var           routeData  = request.RequestContext.RouteData;
                StringBuilder sb         = new StringBuilder();
                for (int i = 0; i < request.Headers.Count; i++)
                {
                    sb.AppendFormat("{0}={1};", request.Headers.Keys[i],
                                    request.Headers[i].ToString());
                }

                item = new APIAccessLogItem()
                {
                    RequestDate   = DateTime.Now,
                    RequestType   = request.RequestType,
                    Url           = request.RawUrl,
                    IPAddress     = request.UserHostAddress,
                    Controller    = (string)routeData.Values["controller"],
                    Action        = (string)routeData.Values["action"],
                    RequestHeader = sb.ToString()
                };

                sb = null;

                using (StreamReader reader = new StreamReader(request.InputStream))
                {
                    try
                    {
                        request.InputStream.Position = 0;
                        item.RequestBody             = reader.ReadToEnd();
                    }
                    catch (Exception ex)
                    {
                        item.RequestBody = string.Empty;
                        //log errors
                    }
                    finally
                    {
                        request.InputStream.Position = 0;
                    }
                }

                filterContext.HttpContext.Response.Filter = new CapturingResponseFilter(filterContext.HttpContext.Response.Filter, item);
            }
            catch (Exception ex)
            {
                //log errors
            }
        }
コード例 #2
0
ファイル: 1_Class1.cs プロジェクト: nblaurenciana-md/Websites
 public CapturingResponseFilter(Stream sink, APIAccessLogItem item)
 {
     _sink         = sink;
     AccessLogItem = item;
     mem           = new MemoryStream();
 }
コード例 #3
0
ファイル: 1_Class1.cs プロジェクト: nblaurenciana-md/Websites
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            HttpRequestBase request = filterContext.HttpContext.Request;

            APIAccessLogItem item;

            try
            {

                var controller = filterContext.Controller;
                var routeData = request.RequestContext.RouteData;
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < request.Headers.Count; i++)
                    sb.AppendFormat("{0}={1};", request.Headers.Keys[i],
                    request.Headers[i].ToString());

                item = new APIAccessLogItem()
                {
                    RequestDate = DateTime.Now,
                    RequestType = request.RequestType,
                    Url = request.RawUrl,
                    IPAddress = request.UserHostAddress,
                    Controller = (string)routeData.Values["controller"],
                    Action = (string)routeData.Values["action"],
                    RequestHeader = sb.ToString()
                };

                sb = null;

                using (StreamReader reader = new StreamReader(request.InputStream))
                {
                    try
                    {
                        request.InputStream.Position = 0;
                        item.RequestBody = reader.ReadToEnd();
                    }
                    catch (Exception ex)
                    {
                        item.RequestBody = string.Empty;
                        //log errors
                    }
                    finally
                    {
                        request.InputStream.Position = 0;
                    }
                }

                filterContext.HttpContext.Response.Filter = new CapturingResponseFilter(filterContext.HttpContext.Response.Filter, item);
            }
            catch (Exception ex)
            {
                //log errors
            }
        }
コード例 #4
0
ファイル: 1_Class1.cs プロジェクト: nblaurenciana-md/Websites
 public CapturingResponseFilter(Stream sink, APIAccessLogItem item)
 {
     _sink = sink;
     AccessLogItem = item;
     mem = new MemoryStream();
 }