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

时间:2012-02-28 06:52:53

标签: java eclipse eclipse-rcp

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

如何实现这一目标?

提前致谢!!

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:0)

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