2013-04-08 76 views
-3

我有以下代码: 我的目标是,只有当用户尝试访问他们需要与Admin.aspx页面进行认证的Register.aspx页。 我收到以下消息;Web.Config中得到验证错误

在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的节是错误的。此错误可能导致虚拟目录未被配置为IIS中的应用程序。

我做错了什么?

 <location path="Report.aspx">   
     <system.web> 
     <authentication mode="Forms"> 
      <forms loginUrl="Admin.aspx" > 
       <credentials passwordFormat="Clear"> 
        <user name="John" password="[email protected]"/> 
       </credentials> 
      </forms> 
     </authentication> 
     <authorization> 
      <deny users="*" /> 
     </authorization> 
     </system.web> 
    </location> 
+0

虚拟目录未配置你有没有虚拟目录设置... – MethodMan 2013-04-08 16:17:50

+0

我不知道。为什么我需要一个虚拟目录?为什么要求一个? – 2013-04-08 16:19:40

+0

您当前的设置将拒绝所有用户查看该页面。 – 2013-04-08 17:01:58

回答

1

您的应用程序可能是坐在一个文件夹下你的网站,该网站的一部分,而不是其本身的应用程序。

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

给这个去看看是否有帮助。

如果不到风度工作...

请你把你的验证配置在根web.config文件,而不是在一个文件夹中的低了下去。 (例如,如果使用MVC,坐在MVC视图文件夹中的那个)。

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

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

没有工作。你看到我的代码有什么问题吗? – 2013-04-08 16:32:57