将<authentication>添加到web.config </authentication>后无法访问css

时间:2013-02-07 04:27:15

标签: asp.net authentication config

我正在创建的网页无法访问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'之上它没有用。请帮我解决这个问题。谢谢你们的帮助!

2 个答案:

答案 0 :(得分:4)

位置标记必须是配置的直接子项

将其放在现有的<system.web>

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

答案 1 :(得分:2)

当您使用<authentication mode="Forms">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>

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

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