允许匿名用户浏览风格和图像文件夹(Allow anonymous user to browse th

2019-09-16 21:55发布

我写的ASP.NET Web应用程序。

我有有一些CSS样式和图像上有一个登录界面。 我跑进在风格和影像不是显示的问题。 我在网上看了,它说我需要我的内容文件夹内的一个web.config。 我添加了以下到Web.config:

<configuration>
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</configuration>

这似乎我的本地机器上运行。 然而,当我发布到INETPUB在服务器上,这是行不通的。

这里是我的文件夹结构:

登录/的Login.aspx - 我的登录屏幕
内容 - 这是我的根文件夹的内容
内容/样式 - 这是我的CSS被收容
内容/图片 - 这是存储我的图片

我试图把里面的样式和图像相同的web.config以及但是这也不能工作。

任何帮助,将不胜感激。

更新:

以下是我在我的有关用户访问主要的web.config:

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

更新2:这是所有在除了连接字符串信息我的根web.config:

<system.web>
<httpRuntime requestValidationMode="2.0"/>
<compilation debug="true" targetFramework="4.0"/>
<sessionState cookieless="UseCookies"/>
<authentication mode="Forms">
  <forms name="CMS" loginUrl="Login/Login.aspx" timeout="25" slidingExpiration="true"/>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>
<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
  </providers>
</membership>
<profile>
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
  </providers>
</profile>
<roleManager enabled="false">
  <providers>
    <clear/>
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/"/>
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
  </providers>
</roleManager>
</system.web>
<location path="Content" allowOverride="false">
<system.web>
   <authorization>
     <allow users="*" />
   </authorization>
 </system.web>
</location>
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

莫不是与用户访问此干扰的东西吗?

Answer 1:

见我在这里的答案 。 有些人建议把web.config文件你想成为向公众开放的文件夹中,但我更喜欢监测从根web.config元素。 基本上,你插,你已经有相同的片段,但是到网站根目录下的web.config文件。 不要忘了“allowOverried = false”属性了。 :)

有些东西不是可以很麻烦,越来越正确的路径。 请确保你得到它恰到好处 ! :)

<location path="Path to your folder" allowOverride="false">
   <system.web>
      <authorization>
         <allow users="*"/>
      </authorization>
   </system.web>
</location>


Answer 2:

我意识到这是一个老问题,但我有同样的烦恼,并希望这可以帮助别人。

就我而言,我不得不改变在IIS中的身份验证设置让它工作。 这听起来像是发生了什么事情,一旦你把它搬到一个远程服务器在默认配置可能会有所不同。

我们有默认启用Windows身份验证模式,但在web.config中指定窗体身份验证 ,它实际上将在IIS配置使两者上。

随着你的web.config,你有这样的事情

<system.web>
    <authentication mode="Forms">
        <forms name="CMS" loginUrl="Login/Login.aspx" timeout="25" slidingExpiration="true"/>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
    <!-- ...etc... -->
</system.web>

如果移动服务器启用了Windows身份验证,它看起来像这样在IIS

请注意,这两种形式和Windows的启用,尽管你的配置说唯一形式。 这将完成是破坏子目录您添加的web.config文件。

如果你有以下的内容的文件夹,它似乎有VS形式与Windows冲突,不管你放什么,它似乎没有兑现你的web.config

<configuration>
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</configuration>

如果你在这个相同的情况下,一定要禁用Windows身份验证,或任何其他未使用的认证方式,如下面的图所示。 您还需要确保匿名启用,以允许它向所有人开放。

希望这可以帮助别人。



Answer 3:

基本上,你要允许任何用户访问内容文件夹中。

添加到您的主web.config中:

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


Answer 4:

通过记录在我的情况是什么帮助的方式: 这个讨论是有益的

  • 我有另一个应用程序,我没有问题,唯一的区别是,IUSR必须在文件夹的权限。 添加IUSR权限帮助
  • 在浏览器中使用“检查”,以显示控制台清楚,当文件无法访问(否则本地缓存掩盖的结果)
  • 我试图在各级使用web.configs如上所述,但这些解决方案并没有为我工作。


文章来源: Allow anonymous user to browse the Style and Images folder