gpt4 book ai didi

visual-studio-2010 - 无论位置元素如何,未经身份验证的用户都无法访问 ASP.NET MVC 中的静态文件

转载 作者:行者123 更新时间:2023-12-02 13:49:01 25 4
gpt4 key购买 nike

我知道这个问题已经被问过好几次了,但是这些答案都没有在我的情况下起作用。我有一个 ASP.NET MVC2 应用程序,它在以集成模式运行的 AppPool 上的本地 IIS 7.5(7600.16385) 上使用表单例份验证。有趣的是,当使用 VS 2010 附带的开发 Web 服务器时,这种情况不会发生。我的 web.config 文件不包含 <authorization />没有 <location />元素。当我进入主页时,除了存储在 ~/Content 中的 .CSS 和 .PNG 文件之外,我在登录 View 中看到了所有内容。目录。当我直接使用 http://localhost/WebSubscribers/Content/Site.css 请求 .CSS 文件时,我被重定向到登录页面。似乎通配符映射尝试授权每个请求,即使我使用 <location path="Content" /> 允许该请求也是如此。如下图:

<location path="Content" >
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

我在 Stack Overflow 上找到的大多数答案都建议添加这样一个位置元素来解决问题,但这对我来说不起作用,所以我删除了它。

我没有在 IIS 中创建通配符映射,只是为了确保安全,我删除了该站点并重新创建它并指向同一目录,只是为了获得相同的结果。可以在 IIS 以外的任何地方指定通配符映射吗?我的 web.config 文件是否可以“获取”某种通配符映射?我使用 Telerik MVC 控件,它似乎对 web.config 文件进行了一些更改(注册的命名空间、httpHandlers、模块)。

还有其他建议吗?

更新:当使用 Chrome 在未经身份验证的情况下访问网站时,“资源”开发人员工具对我的 Site.css 文件显示以下内容:“Site.css:-1Resource 解释为样式表,但使用 MIME 类型 text/html 传输。”

在哪里设置这样的 mime 类型? IIS 中的站点节点显示“.css | text/css | Inherited”。

最佳答案

我在 IIS 中找到了问题的原因和解决方案。该 Web 应用程序在我的 Visual Studio 项目目录中的 IIS 中运行,因此我将其配置为使用在我的用户帐户下运行的 AppPool。在 IIS 中,匿名身份验证功能被配置为特定用户:IUSR。我不知道为什么或如何。当我将其更改回应用程序池标识时,未经身份验证的用户可以访问静态文件。

+1 至 Craig Stuntz指出 MVC 和 IIS 7 不需要通配符映射和位置元素。

关于visual-studio-2010 - 无论位置元素如何,未经身份验证的用户都无法访问 ASP.NET MVC 中的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com