在我們的RCP應用程序中,我們新增了一個菜單作爲菜單貢獻下的命令。現在我們要根據登錄系統的用戶啓用或禁用此新菜單。基本上我們只想爲管理員登錄啓用菜單,而不是爲任何其他用戶啓用。如何在任何系統上檢查用戶的訪問級別
這是如何實現的?
在此先感謝!
在我們的RCP應用程序中,我們新增了一個菜單作爲菜單貢獻下的命令。現在我們要根據登錄系統的用戶啓用或禁用此新菜單。基本上我們只想爲管理員登錄啓用菜單,而不是爲任何其他用戶啓用。如何在任何系統上檢查用戶的訪問級別
這是如何實現的?
在此先感謝!
您可以檢索已登錄用戶名:
String user=System.getProperty("user.name");
您可以檢索用戶的登錄詳細as described in java-forums.org:
public static void ntSystemDetails() {
com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
System.out.println(NTSystem.getDomain());
System.out.println(NTSystem.getDomainSID());
System.out.println(NTSystem.getImpersonationToken());
System.out.println(NTSystem.getPrimaryGroupID());
System.out.println(NTSystem.getUserSID());
for (String group : NTSystem.getGroupIDs()) {
System.out.println("Groups " + group);
}
}
如果你得到這樣的錯誤:
NTSystem is not accessible due to restriction on required library ...
然後,按照下面的步驟在https://stackoverflow.com/a/2174607/607637
描述要知道,在Windows操作系統中約知名安全標識符,看到這個頁面http://support.microsoft.com/kb/243330
然後 我希望你得到足夠的提示。
您可以嘗試使用這種活動機制。看看this
嘿,謝謝你的回覆。這對我來說是一半的答案。上述方法返回系統上的用戶帳戶名稱。我可以使用此名稱並檢查該用戶是否是系統中的管理員? – prakashjv 2012-02-28 08:31:25