我在我的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);
}
是否有可以访问的属性显示用户权限中缺少的角色名称? IE浏览器。 err.RoleThatFailed?
Manh,谢谢,
ETFairfax。
答案 0 :(得分:0)
您可以输出整个堆栈跟踪。
即,
err.ToString()
会告诉您更多信息。
答案 1 :(得分:0)
该角色可以在PermissionState属性中找到。此属性包含需要解析的XML。角色的名称可以在元素' Identity'中找到,该元素具有名为' Role'。
的属性。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);
}