Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET Web窗体授权允许匿名用户访问特定页面_Asp.net_Webforms_Web Config_Authorization_Forms Authentication - Fatal编程技术网

ASP.NET Web窗体授权允许匿名用户访问特定页面

ASP.NET Web窗体授权允许匿名用户访问特定页面,asp.net,webforms,web-config,authorization,forms-authentication,Asp.net,Webforms,Web Config,Authorization,Forms Authentication,我正在使用ASP.NET Web窗体的窗体身份验证,它成功地对用户进行了身份验证 使用web.config中的这些授权设置,匿名用户只能访问登录页面 <authorization> <deny users="?" /> </authorization> ) 除了我指定的页面外,我如何拒绝匿名访问所有页面? 这个问题的答案表明我所做的是正确的。但这似乎对我不起作用。那么为什么会发生这种情况呢?当我试图访问一个页面时,有没有办法找出是什么设置阻止

我正在使用ASP.NET Web窗体的窗体身份验证,它成功地对用户进行了身份验证

使用web.config中的这些授权设置,匿名用户只能访问登录页面

  <authorization>
    <deny users="?" />
  </authorization>

除了我指定的页面外,我如何拒绝匿名访问所有页面?


这个问题的答案表明我所做的是正确的。但这似乎对我不起作用。那么为什么会发生这种情况呢?当我试图访问一个页面时,有没有办法找出是什么设置阻止了访问?我缺少什么吗?

显然,限制较少的文件不能在限制目录中。 但是,对限制较少的目录也可以这样做

最后,我使用以下web.config将公共文件放在根目录中,并将所有受保护的文件放在子文件夹中:

...
  <authorization>
     <allow users="*" />
  </authorization>
...
  <location path="SubFolder">
    <system.web>
      <authorization>
        <deny users="?" />
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
...
。。。
...
...

在Visual Studio Enterprise 2015的.NET Framework 4.5中进行了测试。

这个问题的答案对我很有用
 <location path="SubFolder/LoggedOut.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>
...
  <authorization>
     <allow users="*" />
  </authorization>
...
  <location path="SubFolder">
    <system.web>
      <authorization>
        <deny users="?" />
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
...