Web.Config收到身份验证错误

时间:2013-04-08 16:15:23

标签: c# asp.net forms-authentication

我有以下代码: 我的目标是,只有当用户尝试转到 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>

1 个答案:

答案 0 :(得分:1)

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

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

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

如果这不起作用......

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

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

 <location path="foo.aspx">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>