ASP.NET:在 global.asax 中未捕获安全异常

Posted

技术标签:

【中文标题】ASP.NET:在 global.asax 中未捕获安全异常【英文标题】:ASP.NET: Security Exception not being caught in global.asax 【发布时间】:2011-06-25 21:20:57 【问题描述】:

我在 Global.asax 中受保护的 void Application_Error(object sender, EventArgs e) 方法中有(几乎)以下代码......

异常 ex = Server.GetLastError();

如果(例如 System.Security.SecurityException)

Response.Redirect("Logon.aspx");

其他

Response.Redirect("ErrorPage.aspx");

如果我在登录之前导航到某个页面,则会捕获异常,并且我会按预期重定向到 Login.aspx。但是,这仅在我的本地机器上使用 VS 进行调试时才有效。

上传到实时环境时,未捕获异常,并且向用户显示“安全异常 - 请求主体权限失败”。

任何想法可能是什么问题?我猜这是 IIS 的问题 - 有什么想法吗?

谢谢,

ETFairfax。

【问题讨论】:

我还没有确认这是一个修复,但我确实找到了一个通过这样做解决问题的人:Threading.Thread.CurrentPrincipal = HttpContext.Current.User 【参考方案1】:

试试 Threading.Thread.CurrentPrincipal = HttpContext.Current.User

【讨论】:

以上是关于ASP.NET:在 global.asax 中未捕获安全异常的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC中的Global.asax文件

ASP.NET中的Webconfig 和 Global.asax区别

asp.net mvc global.asax文件详解

asp.net Global.asax Application_Start

ASP.NET 将响应保存到 global.asax 中的文件

如果 ASP.NET 应用程序在本地运行,请在 Global.Asax - Application_Start 中查找