1

我有一个网站,并在它下面有一个应用程序。

按照这里的 tut http://msdn.microsoft.com/en-us/library/ff648341.aspx我在应用程序中创建了一个安全文件夹。

然后 web.config 被添加到应用程序的文件夹中,但我仍然可以访问安全文件夹我做错了什么?

<?xml version="1.0"?>
<configuration>
    <system.web>
    </system.web>
  <!-- The secure folder is for authenticated and SSL access only. -->
  <location path="Secure" >
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>  
</configuration>

更新:最后我有一个 index.html,当我用 Default.aspx 替换它时它确实有效。

那么如何在不添加扩展名的情况下保护任何文件:(

4

4 回答 4

2

身份验证标记可能丢失。这段代码对我有用:

<system.web>
    <identity impersonate="true"/>
    <authentication mode="Forms">
        <forms cookieless="AutoDetect" protection="All" slidingExpiration="true" loginUrl="~/login.aspx"/>
    </authentication>
    <authorization>
        <deny users="?"/>
    </authorization>
</system.web>
<location path="styles">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
<location path="images">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
<location path="scripts">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
于 2012-09-09T16:26:51.680 回答
1

我认为您不需要空的第一个 system.web 并且您不需要将第二个包装在位置标签中。

于 2012-09-09T16:23:35.300 回答
1

我认为您唯一缺少的是:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"></modules>
</system.webServer>

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="Default.aspx">
        </forms>
    </authentication>
</system.web>

这就是我所拥有的并且它有效:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"></modules>
</system.webServer>
<system.web>
    <authentication mode="Forms">
        <forms loginUrl="Default.aspx">
        </forms>
    </authentication>
</system.web>
<location path="secure">
  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
</location>
于 2016-01-22T04:46:01.330 回答
0

试试这个

   <configuration>
    <system.web>
   ...
   <authentication mode="Forms">
   <forms name="MyAppCookie" loginUrl="~/Login.aspx" protection="All" timeout="30" path="/" />
 </authentication>
  </system.web>
  ...
     //deny the access to annonymous users in the Secure directory
    <location path="Secure" >
      <system.web>
    <authorization>
    <deny users="?" />
   </authorization>
    </system.web>
   </location>  
</configuration>
于 2012-09-09T16:34:56.983 回答