【问题标题】:Redirecting from Global.asax in Medium Trust在中等信任中从 Global.asax 重定向
【发布时间】:2009-02-24 06:59:29
【问题描述】:

我正在尝试在 Global.asax 的 Application_Error 处理程序中进行重定向。一点都不花哨。

private void Application_Error(object sender, EventArgs e)
{
   // ...snip...

   Server.Transfer(somePath, false);

   // ...snip...
}

这在完全信任下工作得很好,但我需要让它在中等信任下工作。我正在处理的代码需要在共享托管环境中正常运行(不幸的是,我无法控制此要求)。

但是,当我在我们的开发环境 (XP Pro / IIS 5.1) 中按如下方式配置站点以进行测试时:

<system.web>
  <trust level="Medium"/>
</system.web>

它失败并出现以下错误:

请求“System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。** 在 System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark& stackMark,布尔 isPermSet) 在 System.Security.CodeAccessPermission.Demand() 在 System.Web.HttpWorkerRequest.SendResponseFromMemory(IntPtr 数据,Int32 长度) 在 System.Web.HttpWorkerRequest.SendResponseFromMemory(IntPtr 数据,Int32 长度,布尔 isBufferFromUnmanagedPool) 在 System.Web.HttpResponseUnmanagedBufferElement。 System.Web.IHttpResponseElement.Send(HttpWorkerRequest WR) 在 System.Web.HttpWriter.Send(HttpWorkerRequest WR) 在 System.Web.HttpResponse.Flush(布尔 finalFlush) 在 System.Web.HttpResponse.Flush() 在 System.Web.HttpResponse.End() 在 System.Web.HttpServerUtility.Transfer(字符串路径,布尔值 preserveForm)

还有一些注意事项:

  • 无论是从 Global.asax 还是从 HttpModule 都会发生这种情况。
  • Response.Redirect(somePath) 也会发生这种情况。

感谢您提供的任何见解。我已经在谷歌上搜索了我的 $$ 折扣,但并不高兴。

谢谢!

【问题讨论】:

    标签: redirect httpmodule global-asax medium-trust


    【解决方案1】:

    我今天遇到了同样的问题,但我想我找到了一个可以接受的解决方法。事实证明,指定 Response.Status 代码可以解决此问题。

    private void Application_Error(object sender, EventArgs e)
    {
       // ...snip...
    
       Response.StatusCode = 500;
       Server.Transfer(somePath, false);
    
       // ...snip...
    }
    

    不幸的是,如果您调试页面,似乎仍然会出现 SecurityPermissions 错误。我不确定这到底有多大问题,因为 Server.Transfer 将继续没有错误,并且对用户没有明显影响。

    我很想知道是否有人对此事有想法或意见。

    【讨论】:

      【解决方案2】:

      我和你有同样的问题。

      我用过:

      Response.Redirect("~/ErrorRedirectPage.aspx",false);
      

      而且效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-24
        • 2015-02-20
        相关资源
        最近更新 更多