0

このようにglobal.asaxにすべてのセキュリティ例外をキャッチする方法を実装しました...

protected void Application_Error(object sender, EventArgs e)
    {

        Exception err = Server.GetLastError();
        if (err is System.Security.SecurityException)
            Response.Redirect("~/Error/Roles.aspx);

    }

ユーザーのアクセス許可から欠落していた役割の名前を示す、アクセスできるプロパティはありますか? すなわち。err.RoleThatFailed?

ありがとうございます

ETFエアファックス。

4

2 に答える 2

0

役割は、PermissionState プロパティで見つけることができます。このプロパティには、解析する必要がある XML が含まれています。役割の名前は、'Role' という名前の属性を持つ要素 'Identity' にあります。

Exception err = Server.GetLastError();
if (err is System.Security.SecurityException)
{
    var xmlDocument = new XmlDocument();
    xmlDocument.LoadXml(err.PermissionState);
    string roleName = xmlDocument.GetElementsByTagName("Identity")[0].Attributes["Role"].Value;

    ...

    Response.Redirect("~/Error/Roles.aspx);     
}   
于 2014-05-23T16:27:42.863 に答える