Beispiel #1
0
        private void Context_Error(object sender, EventArgs e)
        {
            HttpContext context = ((HttpApplication)sender).Context;

            int statusCode = ((HttpException)context.Error).GetHttpCode();

            if ((object.ReferenceEquals(context.Error.GetType(), typeof(HttpException))) && (statusCode == 404 || statusCode == 500))
            {
                // Get the Web application configuration.
                System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~/web.config");
                // Get the section.
                CustomErrorsSection customErrorsSection = (CustomErrorsSection)configuration.GetSection("system.web/customErrors");
                // Get the collection
                CustomErrorCollection customErrorsCollection = customErrorsSection.Errors;


                //Clears existing response headers and sets the desired ones.
                context.Response.ClearHeaders();
                context.Response.StatusCode = statusCode;

                if ((customErrorsCollection.Get(statusCode.ToString()) != null))
                {
                    context.Server.Transfer(customErrorsCollection.Get(statusCode.ToString()).Redirect);
                }

                else
                {
                    context.Response.Flush();
                }
            }
        }
Beispiel #2
0
        public void GetKey()
        {
            CustomErrorCollection col = new CustomErrorCollection();

            col.Add(new CustomError(404, "http://404-error.com/"));

            Assert.AreEqual("404", col.GetKey(0), "A1");
        }
Beispiel #3
0
        public static void Main()
        {
            // <Snippet1>

            // Get the Web application configuration.
            Configuration configuration =
                WebConfigurationManager.OpenWebConfiguration(
                    "/aspnetTest");

            // Get the section.
            CustomErrorsSection customErrors =
                (CustomErrorsSection)configuration.GetSection(
                    "system.web/customErrors");

            // Get the collection.
            CustomErrorCollection customErrorsCollection =
                customErrors.Errors;

            // </Snippet1>

            // <Snippet2>
            // Create a new error object.
            // Does not exist anymore.
            // CustomError newcustomError = new CustomError();

            // </Snippet2>

            // <Snippet3>
            // Create a new error object.
            CustomError newcustomError2 =
                new CustomError(404, "customerror404.htm");
            // </Snippet3>

            // <Snippet4>
            // Get first errorr Redirect.
            CustomError currentError0 =
                customErrorsCollection[0];
            string currentRedirect =
                currentError0.Redirect;

            // Set first error Redirect.
            currentError0.Redirect =
                "customError404.htm";

            // </Snippet4>

            // <Snippet5>
            // Get second error StatusCode.
            CustomError currentError1 =
                customErrorsCollection[1];
            int currentStatusCode =
                currentError1.StatusCode;

            // Set the second error StatusCode.
            currentError1.StatusCode = 404;

            // </Snippet5>
        }
Beispiel #4
0
    private void Context_Error(object sender, EventArgs e)
    {
        HttpContext context = ((HttpApplication)sender).Context;

        // determine if it was an HttpException
        if ((object.ReferenceEquals(context.Error.GetType(), typeof(HttpException))))
        {
            // Get the Web application configuration.
            System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~/web.config");
            // Get the section.
            CustomErrorsSection customErrorsSection = (CustomErrorsSection)configuration.GetSection("system.web/customErrors");
            // Get the collection
            CustomErrorCollection customErrorsCollection = customErrorsSection.Errors;
            int statusCode = ((HttpException)context.Error).GetHttpCode();

            //Clears existing response headers and sets the desired ones.
            context.Response.ClearHeaders();
            context.Response.StatusCode = statusCode;

            if (statusCode == 404)
            {
                string Path = context.Request.Path;

                if (Path.Contains("playlist.xml"))
                {
                    context.Response.Clear();
                    context.Response.StatusCode = 101;
                    context.Response.Redirect("/mp3/playlist.xml");
                }
                else if (!Path.EndsWith(".js") && !Path.EndsWith(".gif") && !Path.EndsWith(".jpg") && !Path.EndsWith(".png"))
                {
                    context.Response.Clear();
                    context.Response.Write("404 file not found");
                    context.Response.Redirect("/404.aspx");
                }
            }
            else
            {
            }

            //context.Response.Flush();
        }
        else
        {
            // log the error here in the tracer

            //Clears existing response headers and sets the desired ones.
            context.Response.ClearHeaders();
            context.Response.StatusCode = 500;
            //context.Server.Transfer("/500.aspx");
            if (!context.Request.IsLocal)
            {
                context.Response.Redirect("/500.aspx");
            }
            //
        }
    }
Beispiel #5
0
        public void DuplicateKeyInAdd()
        {
            CustomErrorCollection col = new CustomErrorCollection();

            col.Add(new CustomError(404, "http://404-error.com/"));
            col.Add(new CustomError(404, "http://403-error.com/"));

            Assert.AreEqual(1, col.Count, "A1");
            Assert.AreEqual(1, col.AllKeys.Length, "A2");

            Assert.AreEqual("http://403-error.com/", col[0].Redirect, "A3");
        }
Beispiel #6
0
        public void AllKeys()
        {
            CustomErrorCollection col = new CustomErrorCollection();

            col.Add(new CustomError(404, "http://404-error.com/"));
            col.Add(new CustomError(403, "http://403-error.com/"));
            col.Add(new CustomError(999, "http://403-error.com/"));

            Assert.AreEqual(3, col.AllKeys.Length, "A1");
            Assert.AreEqual("404", col.AllKeys[0], "A2");
            Assert.AreEqual("403", col.AllKeys[1], "A3");
            Assert.AreEqual("999", col.AllKeys[2], "A4");
        }
Beispiel #7
0
        public void Set()
        {
            CustomErrorCollection col = new CustomErrorCollection();

            col.Add(new CustomError(404, "http://404-error.com/"));
            col.Add(new CustomError(403, "http://403-error.com/"));
            col.Add(new CustomError(999, "http://403-error.com/"));

            col.Set(new CustomError(403, "http://403-error2.com/"));

            Assert.AreEqual(3, col.Count, "A1");
            Assert.AreEqual(3, col.AllKeys.Length, "A2");

            Assert.AreEqual("http://403-error2.com/", col[1].Redirect, "A3");
        }
Beispiel #8
0
        public void SetToDuplicate()
        {
            CustomErrorCollection col = new CustomErrorCollection();

            col.Add(new CustomError(404, "http://404-error.com/"));
            col.Add(new CustomError(403, "http://403-error.com/"));
            col.Add(new CustomError(999, "http://403-error.com/"));

            /* override the 999 entry with a duplicate 403 */
            col[2] = new CustomError(403, "http://403-error2.com/");

            Assert.AreEqual(3, col.Count, "A1");
            Assert.AreEqual(3, col.AllKeys.Length, "A2");

            Assert.AreEqual(403, col[1].StatusCode, "A3");
            Assert.AreEqual("http://403-error.com/", col[1].Redirect, "A4");
            Assert.AreEqual(403, col[2].StatusCode, "A5");
            Assert.AreEqual("http://403-error2.com/", col[2].Redirect, "A6");
        }
Beispiel #9
0
        public static void Main()
        {
            // <Snippet1>

            // Get the Web application configuration.
            System.Configuration.Configuration configuration =
                WebConfigurationManager.OpenWebConfiguration(
                    "/aspnetTest");

            // Get the section.
            CustomErrorsSection customErrorsSection =
                (CustomErrorsSection)configuration.GetSection(
                    "system.web/customErrors");

            // Get the collection
            CustomErrorCollection customErrorsCollection =
                customErrorsSection.Errors;

            // </Snippet1>


            // <Snippet2>
            // Create a new CustomErrorCollection object.
            CustomErrorCollection newcustomErrorCollection =
                new System.Web.Configuration.CustomErrorCollection();

            // </Snippet2>


            // <Snippet3>
            // Get the currentDefaultRedirect
            string currentDefaultRedirect =
                customErrorsSection.DefaultRedirect;

            // </Snippet3>

            // <Snippet4>
            // Using the Set method.
            CustomError newCustomError =
                new CustomError(404, "customerror404.htm");

            // Update the configuration file.
            if (!customErrorsSection.SectionInformation.IsLocked)
            {
                // Add the new custom error to the collection.
                customErrorsCollection.Set(newCustomError);
                configuration.Save();
            }

            // </Snippet4>

            // <Snippet5>
            // Using the Add method.
            CustomError newCustomError2 =
                new CustomError(404, "customerror404.htm");

            // Update the configuration file.
            if (!customErrorsSection.SectionInformation.IsLocked)
            {
                // Add the new custom error to the collection.
                customErrorsCollection.Add(newCustomError2);
                configuration.Save();
            }

            // </Snippet5>


            // <Snippet6>
            // Using the Clear method.
            if (!customErrorsSection.SectionInformation.IsLocked)
            {
                // Execute the Clear method.
                customErrorsCollection.Clear();
                configuration.Save();
            }

            // </Snippet6>

            // <Snippet7>
            // Using the Remove method.
            if (!customErrorsSection.SectionInformation.IsLocked)
            {
                // Remove the error with statuscode 404.
                customErrorsCollection.Remove("404");
                configuration.Save();
            }

            // </Snippet7>


            // <Snippet8>
            // Using method RemoveAt.
            if (!customErrorsSection.SectionInformation.IsLocked)
            {
                // Remove the error at 0 index
                customErrorsCollection.RemoveAt(0);
                configuration.Save();
            }

            // </Snippet8>


            // <Snippet9>
            // Get the current Mode.
            CustomErrorsMode currentMode =
                customErrorsSection.Mode;

            // Set the current Mode.
            customErrorsSection.Mode =
                CustomErrorsMode.RemoteOnly;

            // </Snippet9>

            // <Snippet10>
            // Get the error with collection index 0.
            CustomError customError =
                customErrorsCollection[0];

            // </Snippet10>

            // <Snippet11>
            // Get the error with status code 404.
            CustomError customError1 =
                customErrorsCollection["404"];

            // </Snippet11>

            // <Snippet12>
            // Create a new CustomErrorsSection object.
            CustomErrorsSection newcustomErrorsSection =
                new CustomErrorsSection();

            // </Snippet12>
        }
Beispiel #10
0
        public void GetKey_OutOfRange()
        {
            CustomErrorCollection col = new CustomErrorCollection();

            Assert.IsNull(col.GetKey(0), "A1");
        }
Beispiel #11
0
 protected void AccessDenied()
 {
     CustomErrorCollection errorPages = new CustomErrorCollection();
     Response.Redirect(errorPages["403"].Redirect, true);
 }
Beispiel #12
0
 protected void PageNotFound()
 {
     CustomErrorCollection errorPages = new CustomErrorCollection();
     Response.Redirect(errorPages["404"].Redirect, true);
 }