Pet*_*ter 8 asp.net asp.net-mvc iis-7
当我在visual studio中通过调试模式运行我的网站时,一切看起来都很棒,页面上的所有图像都很好.但是,一旦我将我的网站部署到IIS7网络服务器(怀疑其他版本会有所作为,但你永远不知道),那么用户在登录之前无法看到网站上的图像.
该网站是一个asp.net MVC网站,我是MVC的新手,虽然我有很多asp.net表单的经验.似乎只允许经过身份验证的用户访问images文件夹,并且我的web.config中有一个授权部分,说只有管理员可以访问该站点,所以我该如何创建它以便所有用户,经过身份验证或以其他方式查看图像?
- 更新 -
我尝试了一下建议的配置块,从我能说的一切都很有道理,但它似乎没有什么区别.下面的示例包含路径的内容/图像,但在此之前我只尝试了内容,因为可以访问其中的所有内容.我也尝试将allowOverride设置为false,这似乎也没有什么区别.
<location path="Content/Images">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
- 更新2-- 有趣的是,我甚至没有在web.config中看到任何明确的拒绝条目,只是允许管理员,当我进入IIS 7并使用UI允许所有用户访问它没有在列表中显示任何拒绝的内容目录.但是,当我从我的个人计算机上调试它时,这个项目工作得很好,只有在我部署它之后我才有问题......
<authorization>
<allow roles="admin" />
</authorization>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
Oma*_*mar 14
在web.config文件中,在</system.web>
标记之后添加以下内容
<location path="images">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
path="images"
带图像/ css的文件夹的名称在哪里.
如果您正在使用ASP.NET MVC,我将删除web.config文件中的授权声明,并使用[Authorize]
需要锁定的控制器上的属性.
您还可以指定要授予使用权限的角色[Authorize("admin")]
.
小智 6
默认情况下,您在Web.config文件中定义的配置适用于其包含文件夹的每个子目录.如果应用程序根目录中有Web.config,则该配置将传播到每个子目录,包括具有图像和Css样式表的子目录.所以,如果你在你的根Web.config中有一个像这样的规则:
<system.web>
...
<authorization>
<deny users="?"/>
</authorization>
...
</system.web>
Run Code Online (Sandbox Code Playgroud)
匿名用户将无法像您期望的那样访问显示页面所需的资源.
要修复它,您需要在具有演示资源的每个子目录中包含另一个Web.config,并应用您要覆盖的规则.在你的情况下,这应该做的工作:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
如果您使用的是主题,请在主题文件夹中放置一个Web.config文件.
尝试直接浏览图像文件,看看匿名用户是否会出现这种情况。在 IIS 7 中,有一种方法可以直接从 UI 授权匿名用户 [如果 web.config 不存在,则会创建 web.config]。
文件夹 -> .NET 授权规则 -> 添加允许规则
归档时间: |
|
查看次数: |
20632 次 |
最近记录: |