如何在任何系统上检查用户的访问级别

在我们的RCP应用程序中,我们在菜单贡献下新添加了一个菜单作为命令。 现在我们要根据登录系统的用户启用或禁用此新菜单。 基本上我们只想为管理员登录启用菜单,而不是为任何其他用户启用菜单。

如何实现这一目标?

提前致谢 !!

您可以将登录用户的名称检索为:

String user=System.getProperty("user.name"); 

您可以按照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

然后我希望你得到足够的提示。

您可以尝试使用活动机制。 看看这个