-3

我有以下代码: 我的目标是,只有当用户尝试访问Register.aspx页面时,他们才需要通过Admin.aspx页面进行身份验证。我收到以下消息;

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由于虚拟目录未配置为 IIS 中的应用程序造成的。

难道我做错了什么?

       <location path="Report.aspx">        
       <system.web>
         <authentication mode="Forms">
            <forms loginUrl="Admin.aspx" >
                <credentials passwordFormat="Clear">
                    <user name="John" password="pass@432"/>
                </credentials>
            </forms>
         </authentication>
         <authorization>
            <deny users="*" />
         </authorization>
      </system.web>
     </location>
4

1 回答 1

1

您的应用程序可能作为该网站的一部分位于您网站下的文件夹中,而不是其本身的应用程序。

对于 IIS 6.1:进入 IIS,右键单击您的应用程序根文件夹并选择转换为应用程序。

试一试,看看它是否有帮助。

如果这不起作用...

检查您是否将身份验证配置放在根 web.config 文件中,而不是放在较低文件夹中的一个中。(例如,如果使用 MVC,则坐在 MVC 视图文件夹中的那个)。

虽然与你的问题无关,但正如别人所说,你有一个否认一切。要拒绝未经身份验证的用户访问该页面,请使用问号而不是 asterix。

 <location path="foo.aspx">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
于 2013-04-08T16:25:19.070 回答