2012-08-09 192 views
5

我有一個配置爲在集成Windows身份驗證模式下運行的ASP.NET Intranet應用程序。它一直工作得很好,直到最近出現需求。繞過Windows身份驗證

需要什麼內聯網需要檢查可用性檢查是一種Windows服務。檢查器執行的操作是訪問ASP.NET頁面並檢查響應對象。由於Windows服務未與域用戶帳戶運行,它就會

The remote server returned an error: (401) Unauthorized.

我想添加一個新的asp.net頁面檢查器使用的,我想告訴系統不進行身份驗證它。但我相信認證發生在應用程序甚至有機會查看頁面之前,應用程序代碼「看到」頁面之前返回401錯誤。

我有什麼選擇可以得到這個?

謝謝!

約翰

+0

做了什麼與你合作?我有完全相同的問題。 – Costa 2017-07-19 08:02:21

回答

1

試試這個:

添加一個新的文件夾到您的網站(例如:/檢查)

入/籤,創建一個包含新的web.config:

<configuration> 
    <system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
     <allow users="?"/> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</configuration> 

然後,您在/ Check中訪問的任何內容都不應進行身份驗證。

+0

感謝您的快速響應。我試過 – John 2012-08-11 02:04:32

+0

對不起,不知道我只有5分鐘來編輯我的評論。我嘗試了「檢查」文件夾的方法,但得到了這個錯誤:使用註冊爲allowDefinition ='MachineToApplication'的部分超出應用程序級別是錯誤的。此錯誤可能是由於虛擬目錄未被配置爲IIS中的應用程序。 (E:\ Root \ Intranet \ check \ web.config第3行)。 另外我想補充說,這個應用程序運行在IIS 7經典模式。 – John 2012-08-11 02:41:26

3

除了添加一個新文件夾,正如@GordonBell所評論的那樣,您可以在根web.config文件中使用location元素。

例子:

<location path="YourFile.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
+0

是的,好點。雖然這應該是允許用戶=「?」爲匿名。 – 2012-08-10 20:36:27

+0

@GordonBell您的評論不夠準確。 '*'表示_all users_。 '?'表示匿名用戶。因此' Jupaol 2012-08-10 20:42:56