【问题标题】:Can't access css after adding <authentication> to web.config将 <authentication> 添加到 web.config 后无法访问 css
【发布时间】:2013-01-22 12:08:53
【问题描述】:

我正在创建的网页无法访问 CSS 文件。

看看我的webconfig:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="MySql.Data, Version=6.2.5.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>
  </system.web>
  <location path="css">
    <system.web>
      <authentication mode="Forms">
        <forms name=".ASPXFORMSDEMO" loginUrl="Login.aspx" protection="All" path="/" timeout="60"/>
      </authentication>
      <authorization>
        <deny users="?"/>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

我在这里找到了一些答案:

Authorization Issue - anonymous users can't access .jpeg or .css

但是当我试着放

<location path="css">  

在“system.web”之上它不起作用。请帮我解决这个问题。感谢您的所有帮助!

【问题讨论】:

    标签: asp.net authentication config


    【解决方案1】:

    位置标签必须是配置的直接子代

    把它放在你现有的&lt;system.web&gt;

    <configuration>
       <system.web>
       ...
       </system.web>
       <location path="css">
          <system.web>
             <authorization>
                <allow users="?" />
             </authorization>
          </system.web>
       </location>
    </configuration>
    

    【讨论】:

    • 请检查我的编辑,我编辑了我的 webconfig,但我收到了这个错误:“使用注册为 allowDefinition='MachineToApplication' 的部分超出应用程序级别是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。'
    • 不要复制所有元素。您只需要设置授权。身份验证仍然是您的主要&lt;system.web&gt; 的一部分。您还需要一个适当的&lt;authorization&gt; 标签来阻止未经身份验证的用户。
    【解决方案2】:

    由于您使用的是&lt;authentication mode="Forms"&gt;protection="All",因此您无法在没有登录的情况下访问除loginUrl 之外的任何文件。
    如果你想在不登录的情况下访问任何文件或文件夹,你应该在你的 web.config 文件中告诉如下

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

    或者,如果您希望任何文件夹无需登录即可访问,那么您应该按照以下方式使用它

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

    标签 &lt;allow users="*" /&gt; 适合您。它允许用户无需登录即可访问该路径。
    这里有一些很好的链接

    http://msdn.microsoft.com/en-us/library/b6x6shw7%28v=vs.71%29.aspx
    http://msdn.microsoft.com/en-us/library/ms178692%28v=vs.100%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多