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(); } } }
public void GetKey() { CustomErrorCollection col = new CustomErrorCollection(); col.Add(new CustomError(404, "http://404-error.com/")); Assert.AreEqual("404", col.GetKey(0), "A1"); }
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> }
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"); } // } }
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"); }
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"); }
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"); }
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"); }
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> }
public void GetKey_OutOfRange() { CustomErrorCollection col = new CustomErrorCollection(); Assert.IsNull(col.GetKey(0), "A1"); }
protected void AccessDenied() { CustomErrorCollection errorPages = new CustomErrorCollection(); Response.Redirect(errorPages["403"].Redirect, true); }
protected void PageNotFound() { CustomErrorCollection errorPages = new CustomErrorCollection(); Response.Redirect(errorPages["404"].Redirect, true); }