2010-03-10 108 views
3

我們試圖通過Web管理控制檯在服務器上運行一組管理任務。控制檯以模擬身份作爲當前登錄的用戶運行,並且只有本地計算機上的管理員才能登錄。目前它適用於大多數情況,但在UAC下運行時遇到問題。暫時將高級管理員權限授予ASP.NET代碼

第一個問題是阻止程序:它看起來像管理員沒有得到「BUILTIN \ Administrators」角色,即使他們是本地框上的管理員。這可以防止他們進入管理控制檯,因爲我們使用web.config表示法來指定安全性。我懷疑這裏唯一的解決方案是以SYSTEM身份運行ASP.NET應用程序,或者允許更多用戶在代碼中執行更細化的權限檢查。任何其他想法?有沒有辦法將提升請求注入到內置的ASP.NET權限檢查中?

另一個問題是我們想運行一些需要管理員訪問的命令。訪問該站點的用戶是管理員,並且模擬得當,但是當我們產生一個進程時,由於缺乏管理員權限而失敗。明確的答案是在該命令的持續時間內提升。有些解決方案可以讓我通過模仿特定的用戶名和密碼而暫時升級,但我不想問已經驗證過的用戶密碼。有沒有提升當前用戶的技巧?

(我可以理解爲什麼ASP.NET團隊可能會努力做到這一點,以便網頁不能看到訪問該網站的管理員的隱形優勢......但肯定必須有一些方法可以讓專業人員語法聲明,您的代碼需要完全的管理員權限,適當警告其意圖的IIS管理)

有一系列的答案爲Windows窗體應用程序,如: How to elevate privileges only when required?File.Exists returning false from a network share ,但我希望能找到一個將與ASP.NET一起工作...

謝謝 Steve

+0

我也有這個問題。你有沒有找到答案? –

+0

也正在尋找這個答案。 – roryf

+0

你有沒有使用過我在答案中提供的任何資源?或者你有替代路線嗎? – Peter

回答

1

我們通過啓用Active Directory中的委派服務器,可以從當前訪問網站的用戶實現「更高」的模擬級別。根據Microsoft,You can think of delegation as a more powerful form of impersonation, as it enables impersonation across a network.您可能不需要通過網絡,但它可能會解決您的安全問題。

以下是設置代表團的一些資源,希望這對您有所幫助。