我試圖在使用.NET授權規則的IIS7中保護應用程序。IIS7授權規則/配置 - 永久提示
默認情況下,Web服務器允許所有用戶訪問(這是繼承的)。
我已經爲這個應用程序目錄添加了一個拒絕所有用戶命令,以及針對特定用戶的allow命令。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<allow users="myusername" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
我啓用了Windows身份驗證,並且我可以驗證沒有REMOTE_USER是MYDOMAIN \ myusername的行。
但是,當我嘗試拒絕所有用戶時,系統會提示使用典型的Windows域用戶名/密碼框。如果我輸入用戶名密碼,則提示會再次出現3次,直到最終顯示一條失敗消息。 (我也嘗試過無效)
尋找事件查看器,看起來好像我的用戶名和密碼登錄在審計中成功...並且爲了進一步說明,我的帳戶沒有被鎖定(如果我一次又一次無法登錄,那會是這樣)。所以就好像我正在登錄一樣,但配置沒有看到我輸入的內容與我的登錄名相匹配。
下面是我看到(甚至使用本地主機服務器連接時)消息:
**訪問被拒絕。
描述:訪問提供此請求所需的資源時發生錯誤。服務器可能未配置爲訪問所請求的URL。
錯誤消息401.2 .:未經授權:由於服務器配置而導致登錄失敗。驗證您是否有權根據您提供的憑據以及Web服務器上啓用的身份驗證方法來查看此目錄或頁面。額外的幫助,請與Web服務器的管理員。**
此外,看起來這種方法是ASP.NET的IIS6方法。 IIS7授權有點不同。對於那個我有 的規則,但這些似乎什麼都不做。我添加了一個 ,但它似乎並沒有否認任何東西。順便說一句,這是IIS 7.5。奇怪的是,.NET授權規則圖標在ASP.NET下,似乎遵循IIS6方法。也許IIS7授權沒有配置或安裝? –
enforge
2010-12-08 16:04:11
看來我的系統上沒有安裝IIS7 URL授權。相反,還有其他名稱與安裝的名稱相同,即IIS 6版本的工作方式不同。壞的,淘氣的微軟!如果這導致解決方案,我會更新一個完整的答案。 – enforge 2010-12-08 16:09:52