【问题标题】:How to stop OWIN Startup class for Identity Framework being called for image requests?如何停止为图像请求调用 Identity Framework 的 OWIN 启动类?
【发布时间】:2015-05-08 11:19:21
【问题描述】:

是否可以阻止 Owin Startup 类为我的/Content/Images 文件夹中的图像的每个请求调用?

我发现,对于每个图像请求,一个新的 DbContext 正在newed up,而无需对图像进行任何授权检查。

更新:

我刚刚创建了一个全新的 MVC 项目,我发现 /Content/images/ 中的图像没有调用该类。

所以看起来,默认情况下,当它是对 /Content 文件夹的请求时,它不会调用它,但由于某种原因,在我的应用程序中它会调用它。

web.config 或文件夹的属性中有设置吗?

【问题讨论】:

  • 它不应该对静态文件这样做。你的配置中有runAllManagedModulesForAllRequests="true" 吗?

标签: c# asp.net-mvc owin


【解决方案1】:

在您的配置中,将 runAllManagedModulesForAllRequests="true" 替换为 runAllManagedModulesForAllRequests="false"。如果它破坏了您的应用程序中的某些内容,您可能不得不在注册模块上摆弄preCondition="managedHandler",但大多数时候该属性应设置为false。

请参阅Can't stop firing ASP.NET Module for static content 了解有关此属性如何工作的详细信息。

【讨论】:

  • 这就是答案。你不想要静态文件,启动整个 ASP.NET 堆栈。
  • 完美,非常感谢您的帮助。我在开始为 .NET 配置 ImageProcessor 时添加了这个 - 但经过一些测试后,它看起来在没有它的情况下也可以工作。
【解决方案2】:

如果 IsStaticContent=true(我在 global.asax 中使用过,但将是相同的),您可以尝试使用类似的方法而不调用您的配置:

readonly string[] _staticContents = { ".js", ".css", ".png", ".jpg", ".jpeg", ".html", ".htm", ".gif", ".ashx", ".axd" };

protected bool IsStaticContent(HttpRequest request)
{

    return _staticContents.Any(request.CurrentExecutionFilePath.EndsWith);
}

【讨论】:

    猜你喜欢
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多