2012-02-28 45 views
1

在我們的RCP應用程序中,我們新增了一個菜單作爲菜單貢獻下的命令。現在我們要根據登錄系統的用戶啓用或禁用此新菜單。基本上我們只想爲管理員登錄啓用菜單,而不是爲任何其他用戶啓用。如何在任何系統上檢查用戶的訪問級別

這是如何實現的?

在此先感謝!

回答

3

您可以檢索已登錄用戶名:

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

然後 我希望你得到足夠的提示。

+0

嘿,謝謝你的回覆。這對我來說是一半的答案。上述方法返回系統上的用戶帳戶名稱。我可以使用此名稱並檢查該用戶是否是系統中的管理員? – prakashjv 2012-02-28 08:31:25

0

您可以嘗試使用這種活動機制。看看this

相關問題