2013-04-08 16 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