示例#1
0
        private void Application_Error(object sender, EventArgs e)
        {
            HttpRequestValidationException lastError = base.Server.GetLastError() as HttpRequestValidationException;

            if (lastError != null)
            {
                PowwaEvents.PowwaEVENT_MALICIOUS_DATA(SessionHelper.GetSourceIPAddressRemoteAddr(), SessionHelper.GetSourceIPAddressHttpXForwardedFor(), lastError.Message);
            }
        }
            public void ResolveRichText_InvalidQueryStringValue_ThrowsHttpRequestValidationException_LogsException()
            {
                const string PARAM           = "param";
                const string DEFAULT_VALUE   = "DEF";
                string       text            = $"{{% ResolveDynamicText(\"query\", \"{PARAM}\", \"{DEFAULT_VALUE}\") %}}";
                var          register        = GetPatternRegister();
                var          queryString     = Substitute.For <IDataContainer>();
                var          thrownException = new HttpRequestValidationException();

                queryString[PARAM].Returns(x => { throw thrownException; });

                string result = new DynamicTextResolver(register, queryString, eventLogService).ResolveRichText(text);

                Assert.Multiple(() =>
                {
                    Assert.That(result, Is.EqualTo(DEFAULT_VALUE));
                    eventLogService.Received(1).LogException("RichTextEditor", "InvalidQueryParamValue", thrownException);
                });
            }
示例#3
0
        void Application_Error(object sender, EventArgs e)
        {
            Exception ex = Server.GetLastError().InnerException ?? Server.GetLastError();

            if (ex is ThreadAbortException)
            {
                // 不记录Response.End引发的异常
                Thread.ResetAbort();
                HttpContext.Current.ClearError();
                return;
            }

            HttpException exp404 = ex as HttpException;

            if (exp404 != null)
            {
                int erCode = exp404.GetHttpCode();
                if (erCode == 404 || erCode == 400)
                {
                    LogHelper.WriteCustom(ex.Message, erCode.ToString() + "err\\");
                    ClearError();
                    return;
                }
            }

            string msg = string.Format("\r\nGlobal异常: Post数据:{0}\r\nHeaders:\r\n{1}",
                                       Request.Form, GetHeaders());

            HttpRequestValidationException validationExp = ex as HttpRequestValidationException;

            if (validationExp != null)
            {
                LogHelper.WriteCustom(msg, "expValidation\\");
                ClearError();
                return;
            }

            LogHelper.WriteException(msg, ex);
            ClearError();
        }
            protected void HandleHttpRequestValidationException(System.Web.Mvc.ModelBindingContext bindingContext, HttpRequestValidationException ex)
            {
                var valueProviderCollection = bindingContext.ValueProvider as System.Web.Mvc.ValueProviderCollection;

                if (valueProviderCollection != null)
                {
                    System.Web.Mvc.ValueProviderResult valueProviderResult = valueProviderCollection.GetValue(bindingContext.ModelName, skipValidation: true);
                    bindingContext.ModelState.SetModelValue(bindingContext.ModelName, valueProviderResult);
                }

                string errorMessage = string.Format(CultureInfo.CurrentCulture, "{0} contém caracteres inválidos: <, & ou >",
                                                    bindingContext.ModelMetadata.DisplayName);

                bindingContext.ModelState.AddModelError(bindingContext.ModelName, errorMessage);
            }