Ejemplo n.º 1
0
        public void ProcessRequest(HttpContext context)
        {
            WebUtility.CheckHttpContext();

            if (!CheckBeforeRequest(context))
            {
                ResponseException(new ApplicationException("无用户身份信息!请重新登录系统。"), context, GetErrorDetail);
            }
            try
            {
                ControllerHelper.ExecuteProcess(context);
            }
            catch (Exception ex)
            {
                Exception innerEx = ex.InnerException;
                if (innerEx == null)
                {
                    ResponseException(ex, context, GetErrorDetail);
                }
                else
                {
                    if (innerEx is ApplicationException
                        )
                    {
                        ResponseException(innerEx, context, GetErrorMsg);
                    }
                    else
                    {
                        ResponseException(innerEx, context, GetErrorDetail);
                    }
                }
            }
            AfterProcess(context);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 使用当前的Web Request的路径进行匹配的结果
        /// </summary>
        /// <typeparam name="T">期望的类型。</typeparam>
        /// <returns>匹配结果。</returns>
        public T GetMatchedElement <T>() where T : AuthenticateDirElementBase
        {
            WebUtility.CheckHttpContext();

            HttpRequest request = HttpContext.Current.Request;

            string url = request.Url.GetComponents(
                UriComponents.SchemeAndServer | UriComponents.Path,
                UriFormat.SafeUnescaped);

            return(GetMatchedElement <T>(url));
        }
        public void ProcessRequest(HttpContext context)
        {
            WebUtility.CheckHttpContext();


            if (!CheckBeforeRequest(context))
            {
                ResponseException(new ApplicationException("无用户身份信息!请重新登录系统。"), context, GetErrorDetail);
            }
            try
            {
                DateTime s = DateTime.Now;
                ControllerHelper.ExecuteProcess(context);
                DateTime e    = DateTime.Now;
                TimeSpan span = e - s;
                context.Response.Headers.Add("All-Time", span.TotalMilliseconds.ToString());
            }
            catch (Exception ex)
            {
                Exception innerEx = ex.InnerException;
                if (innerEx == null)
                {
                    ResponseException(ex, context, GetErrorDetail);
                }
                else
                {
                    if (innerEx is ApplicationException)
                    {
                        ResponseException(innerEx, context, GetErrorMsg);
                    }
                    else
                    {
                        ResponseException(innerEx, context, GetErrorDetail);
                    }
                }
            }
            AfterProcess(context);
        }