我正在開發一個安裝程序,我想寫入只能由管理員訪問的文件夾。所以,我需要顯示UAC對話框並以管理員身份進行身份驗證。我知道我可以通過從安裝程序GUI運行單獨的可執行文件來實現這一點,但我更願意使用一種解決方案,以便在應用程序中隨時進行身份驗證。這在.NET中可能嗎?以管理員身份進行身份驗證?
回答
您不能更改權限級別中期過程中,一旦一個進程已經開始還停留在那個權限級別。您必須使用提升的權限啓動單獨的進程,並與IPC通信以更新GUI。
如果你正在寫一個安裝程序的最好的事情就是剛剛慶祝安裝自己的應用程序表現爲行政權本身,以便將請求管理員權限啓動時,你將每次需要也無妨。
我之所以不想(例如立即要求管理員權限),這樣做是因爲我希望能夠安裝到本地/應用程序數據文件夾以及。 – Ryan
然後,你將需要生成第二處理沒有GUI和使用某種形式的[IPC](http://msdn.microsoft.com/en-us/library/aa365574%28v=vs.85%29.aspx) ([WCF(http://msdn.microsoft.com/en-us/library/ms735119%28v=vs.90%29.aspx)使用管道將是可能的候選者,但你將有權限的發揮當你有一個高權限進程與一個低權限進程交談時,默認的進程將不起作用)告訴它該做什麼。 –
你必須用這個配置爲Manifest
文件運行一個新的進程:
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
作爲替代開始一個新的進程升高,您可以創建提升一個新的COM對象。
某些安裝程序使用類似於您正在嘗試執行的方法。一個例子是foobar2000 installer。在第一個屏幕上,它會詢問標準的(所有用戶)或便攜式設置。如果選擇標準,它會提示升高並重新啓動。
所以,你最簡單的選擇將是從用戶那裏收集數據,然後重新啓動自身或其他可執行以管理員身份做它通過與用戶的選擇參數的實際工作。
- 1. 以用戶身份進行管理員身份驗證
- 2. Firebase以管理員身份進行身份驗證
- 3. 以管理員身份進行身份驗證
- 4. 管理員身份驗證
- 5. 如何使用Oracle身份管理器進行身份驗證?
- 6. rails 3管理員身份驗證
- 7. Django管理員沒有身份驗證
- 8. Django管理員:停用身份驗證
- 9. 以用戶身份從Visual Studios進行調試,以管理員身份運行
- 10. 分別對用戶和管理員進行身份驗證
- 11. 以管理員身份運行實例
- 12. C#以管理員身份運行CMD
- 13. 以管理員身份運行R
- 14. 以管理員身份運行VBS
- 15. 以管理員身份運行鏈接
- 16. CreateProcess以管理員身份運行
- 17. Java:以管理員身份運行
- 18. 如何以管理員身份運行?
- 19. 如何以管理員身份運行?
- 20. WNetGetConnection並以管理員身份運行
- 21. 以管理員身份運行程序
- 22. 用asp.net進行Azure AD身份驗證身份驗證
- 23. Authlogic - 通過基本HTTP身份驗證進行身份驗證
- 24. 在MySQL中以特定用戶身份進行身份驗證
- 25. Javamail:以管理員用戶身份進行身份驗證,作爲其他用戶授權
- 26. 如何在yii2中使用身份類別對管理員和員工進行身份驗證
- 27. 身份驗證管理器中的交換機身份驗證處理程序
- 28. 驗證組成員身份
- 29. Asp.net成員身份驗證
- 30. REST API的身份管理和身份驗證
UAC ......讓我想起了火星 –