如何檢測任意用戶是否是機器上的管理員?我有用戶的域名和用戶名,但沒有密碼。用戶不是當前登錄的用戶,所以我不能只使用WindowsIdentity.GetCurrent。檢測用戶是否在組中
0
A
回答
1
使用LDAP。見例here。
0
您可以使用System.DirectoryServices首先加載本地計算機,然後搜索給定組內的任何用戶。嘗試以下代碼:
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry admGroup = localMachine.Children.Find("administrators","group");
object members = admGroup.Invoke("members", null);
然後在部件的每個成員創建一個新的DirectoryEntry對象:
foreach (object groupMember in (IEnumerable)members)
{
DirectoryEntry member = new DirectoryEntry(groupMember);
//Do what you want
}
該foreach循環的內部的構件對象是具有數據的關於用戶的負載在裏面。與當前的循環比較的成員的名字:
if (memberSearch.name == member.name) {
return true;
} else {
return false;
}
你也可以通過搜索成員對象找到用戶等方面有大量的做這件事的方式。希望這可以幫助!
2
使用UserPrincipal.GetAuthorizationGroups檢查用戶是否在允許管理員訪問機器的組中。
首先使用FindByIdentity獲取UserPrincipal對象。然後獲取該用戶所屬的授權組。檢查每個組以查看是否與內置管理員組相匹配。如果內置管理員組不在用戶的授權組中,則該用戶不是本地計算機上的管理員。
using System.DirectoryServices.AccountManagement;
using System.Linq;
var name = Environment.UserName;
var user = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain), name);
var groups = user.GetAuthorizationGroups();
var isAdmin = groups.Any(g => g.Name == "Administrators");
Console.WriteLine("Admin: " + isAdmin);
相關問題
- 1. 檢測用戶是否在家
- 2. Firebase檢測用戶是否存在
- 3. 檢測用戶是否在代理後
- 4. 檢查用戶組是否存在
- 5. 檢測用戶是否註銷Facebook
- 6. 檢測用戶是否已登錄
- 7. 檢測用戶是否先前投票?
- 8. 檢測用戶是否登錄到Facebook
- 9. 檢測用戶是否爲測試用戶
- 10. 在Django中,如何檢查用戶是否在某個組中?
- 11. 檢測用戶是否必須重置密碼在Active Directory中
- 12. 檢測用戶是否在WPF中移動了窗口
- 13. 檢測用戶是否在SharePoint 2010中聯機
- 14. 在rails中檢測用戶是否刷新頁面
- 15. 如何檢測用戶是否在pygame中雙擊?
- 16. 是否可以在純CSS中檢測Firefox用戶?
- 17. 如何檢測用戶是否停止在EditText中輸入android
- 18. SSRS檢查組中是否使用定製組裝的用戶
- 19. 檢測Active Directory用戶帳戶是否在Python中使用LDAP進行鎖定
- 20. Rails檢查用戶標識是否在數組中
- 21. Python如何檢查用戶是否在組中查看頁面
- 22. 檢測特定的用戶帳戶是否存在在安裝過程中
- 23. 檢測用戶是否在使用gapi.auth.authorize時關閉彈出框
- 24. 如何檢測用戶是否在使用javascript的PC上
- 25. 檢測用戶是否正在使用iDevice
- 26. 檢測Windows用戶在VB.NET中的域用戶組
- 27. 檢測Javascript是否啓用?
- 28. 檢測cors是否啓用?
- 29. 檢測JavaScript是否啓用
- 30. 檢測用戶是否在div內滾動
完美,謝謝。 – 2009-05-22 18:46:56