1
我想弄清楚如何確定程序是否正在運行管理模式。我已經展示了一些例如編碼是什麼,我在.NET中使用如下:NET - 試圖找出用戶是否正在運行ADMIN的問題
Imports System.Security.Principal
Module Module1
Sub Main()
Dim id = WindowsIdentity.GetCurrent()
Dim pr = New WindowsPrincipal(id)
Dim isAdm As Boolean = pr.IsInRole(WindowsBuiltInRole.Administrator)
If isAdm = True Then
MessageBox.Show(Me, "Running Admin")
else
MessageBox.Show(Me, "Not Running Admin")
End If
End Sub
End Module
這個偉大的工程在大多數情況下,但我有誰運行的是Windows 7專業版用戶和它返回TRUE不管是什麼,如果他以管理員身份運行或不運行。
我不知道是什麼會導致這種情況,但有沒有辦法找出爲什麼會發生這種情況,並可能是一種解決方案。無論是通過編碼,還是解決這個問題的編碼,要麼發現程序總是返回true。
任何線索?
您的代碼正在檢查當前**用戶** _是否爲admin,而不是當前**進程** _是否以管理員權限運行。要檢查進程是否以提升(管理員)權限運行,您很可能必須處理令牌。 [**這個答案可能會有幫助**](http://stackoverflow.com/a/4497572/3740093)。 –
感謝您的回覆。我也嘗試過,也沒有工作。它也返回真實,這真的很奇怪。總體問題是,如果用戶首次以管理員身份運行該程序,則這些文件也會以管理員權限編寫。然後,如果您以用戶的身份啓動該程序,則無法寫入文件,因爲存在拒絕訪問權限。我在想如何防止這種情況,或者至少警告用戶。 – Valleriani
您可以將文件權限設置爲'everyone'代替。 http://stackoverflow.com/questions/9108399/how-to-grant-full-permission-to-a-file-created-by-my-application-for-all-users – FloatingKiwi