Web プロジェクトで簡単なエラー処理ページを作成する_html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 11:49:56
オリジナル
957 人が閲覧しました

アプリケーションでエラーが発生した場合、エラーページが処理されないと、一部の機密情報が直接出力され、場合によってはプロジェクトが配置されている物理パスが直接表示されます。これは重大なセキュリティの欠如であり、エラーになります。この記事では、Web プロジェクトでエラー メッセージをわかりやすく表示するエラー ページを作成する方法を紹介します。

まず、エラー ページ error.aspx を作成します。フロントエンド コードは次のとおりです (実際のニーズに応じて要素を追加できます):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="error.aspx.cs" Inherits="MES.Web.error" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <style type="text/css">        .style1        {            width: 74px;        }        .style2        {            width: 79px;        }    </style></head><body>    <form id="form1" runat="server">    <div align="center">        <table style="height: 85px; width: 657px;">            <tr>                <td>                    <img alt="system error" src="Images/errorpage.jpg" />                </td>            </tr>            <tr>                <td class="style2">                    <asp:Label ID="lblMessage1" runat="server" Font-Names="微软雅黑" Text=""></asp:Label>                </td>            </tr>            <tr>                <td class="style2">                    <asp:Label ID="lblMessage2" runat="server" Font-Names="微软雅黑" Text=""></asp:Label>                </td>            </tr>            <tr>                <td class="style2">                    <asp:Label ID="lblMessage3" runat="server" Font-Names="微软雅黑" Text=""></asp:Label>                </td>            </tr>        </table>    </div>    </form></body></html>
ログイン後にコピー


次に、グローバル処理の Application_Error にエラー処理コードを追加します。

// 在出现未处理的错误时运行的代码            Exception objErr = Server.GetLastError().GetBaseException();            string sError = "异常页面:" + HttpContext.Current.Request.Url.ToString() + "异常信息:" + objErr.Message + "处理方法:请刷新页面重试或联系系统管理员。";                        //清除之前的异常            Server.ClearError();            //这里如果用Session["ProError"]会出错,所以用 Application["AppError"]            Application["AppError"] = sError;            //这里不能用Response.Redirect            System.Web.HttpContext.Current.Response.Redirect(HttpContext.Current.Request.ApplicationPath + "/error.aspx");
ログイン後にコピー


第三に、エラー ページが初期化されると、次のようなエラー メッセージが出力されます。

if (!IsPostBack)            {                if (Application["AppError"] != null)                {                    try                    {                        string msg = Application["AppError"].ToString();                        msg = msg.Replace("\"", "");                        lblMessage1.Text = msg.Substring(0, msg.IndexOf("异常信息"));                        lblMessage2.Text = msg.Substring(msg.IndexOf("异常信息"), msg.IndexOf("处理方法") - msg.IndexOf("异常信息"));                        lblMessage3.Text = msg.Substring(msg.LastIndexOf("处理方法"));                    }                    catch (Exception ex)                    {                        lblMessage1.Text = ex.Message;                    }                }            }
ログイン後にコピー


上記の手順でエラー ページの設定を完了できます。ページは Web.Config を通じて構成することもできます。プレビュー効果は次のとおりです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!