ASP.NET : 例外メッセージを特定のRoleユーザーにのみ表示させる

http://weblogs.asp.net/scottgu/archive/2006/08/12/tip_2f00_trick_3a00_-show-detailed-error-messages-to-developers.aspx

1. Web.config の設定

    <customErrors mode="On">
      <error statusCode="500" redirect="error.aspx"/>
    </customErrors>

テスト目的でmode="On"にしていますが、mode="RemoteOnly" を実際使いましょう。Live環境ではくれぐれもmode="Off"はしないように。

2. global.asax にApplication_Error()を実装

    void Application_Error(object sender, EventArgs e) 
    { 
        if (Context != null && Context.User != null && Context.User.IsInRole("PaperAdmin"))
        {
            Exception ex = Context.Server.GetLastError();

            Response.Clear();
            Response.Write(ex.Message);
            Response.Write("<hr>");            
            Response.Write(ex.InnerException.Message );
            Response.Write("<hr>");
            Response.Write(ex.ToString());

            Server.ClearError();
        }
    }

この例ではPaperAdminロールのユーザーに例外を表示させています。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中