2012-08-30 60 views
0

有誰知道UrlAcl數據如何存儲在註冊表中的規範?我知道我可以在HKLM \ System \ CurrentControlSet \ services \ HTTP \ Parameters \ UrlAclInfo中找到這些值。每個值名稱都是註冊的實際URL,但是,其餘實際數據是二進制的。我需要能夠獲得urlacl註冊的用戶名。有誰知道我在哪裏可以找到如何解析二進制數據以獲取我需要的信息?UrlAcl註冊表中的信息

謝謝!

+0

我會和Jim Mischel的使用API​​的建議一起去的。大多數註冊表數據不是公開指定的,也不打算由創建它的代碼以外的任何內容解釋。即使你認爲你已經成功地對其進行了逆向工程,但它只需要你的測試沒有見過的一個角落案例,以使整個事情戛然而止:) – shambulator

回答

1

另一種方法是讓程序運行netsh http show urlacl,重定向輸出,然後解析它。一個例子見Redirecting console output to another application

理想情況下,您將能夠從Windows API訪問信息。我知道有一段時間,這個API是「未發佈的」。我不知道現在是否記錄在案。

更新:或許HttpQueryServiceConfiguration是你在找什麼?有幾個HttpApi函數的C#包裝器。搜索[httpapi C#]。我不知道他們中的任何一個會做你想做的事,但他們看起來很有前途。

根據文檔,HttpApi適用於Windows XP SP2,Windows Server 2003以及所有更高版本。

+0

不幸的是,我需要支持Windows XP和Server 2003作爲好吧,否則我可能會走這條路。我不能依賴安裝了Support Utils的用戶爲這些系統使用httpconfig。儘管感謝您的意見! –

+0

@JoshJohnson:看我的更新。 –

+0

@JimMischel我認爲這是正確的API。 [WiX-contrib項目](http://wixcontrib.codeplex.com/)的擴展名旨在在應用程序安裝期間創建URL ACL。雖然它不是生產代碼(相關部分以C++編寫),但它可能有一些方便的使用指針。 – shambulator