Foxtable(狐表)用户栏目专家坐堂 → [求助]能帮忙判断下当前域账号是否有本地管理员权限?


  共有2869人关注过本帖树形打印复制链接

主题:[求助]能帮忙判断下当前域账号是否有本地管理员权限?

帅哥哟,离线,有人找我吗?
jiskin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
[求助]能帮忙判断下当前域账号是否有本地管理员权限?  发帖心情 Post By:2016/9/7 8:49:00 [只看该作者]

我在网上搜到这一段,能帮忙改改不?我需要判断当前域账号是否具有管理员权限,(直接判断是否为本地管理员不成功)

BOOL IsAdministratorUser()
{
    static HMODULE hModule = NULL;
    if( !hModule )
        hModule = LoadLibrary(_T("shell32.dll"));
    if( !hModule )
        return TRUE;
 
    typedef BOOL (__stdcall *FunctionIsUserAdmin)();
    FunctionIsUserAdmin pfnIsUserAnAdmin = (FunctionIsUserAdmin)GetProcAddress(hModule, "IsUserAnAdmin");
    if (pfnIsUserAnAdmin)
        return pfnIsUserAnAdmin();
    return TRUE;
}

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/7 9:08:00 [只看该作者]

Dim id As Security.Principal.WindowsIdentity = Security.Principal.WindowsIdentity.GetCurrent()
Dim principal As New Security.Principal.WindowsPrincipal(id)
Output.Show( principal.IsInRole(Security.Principal.WindowsBuiltInRole.Administrator))

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2016/9/7 9:18:00 [只看该作者]

以下是引用有点蓝在2016/9/7 9:08:00的发言:
Dim id As Security.Principal.WindowsIdentity = Security.Principal.WindowsIdentity.GetCurrent()
Dim principal As New Security.Principal.WindowsPrincipal(id)
Output.Show( principal.IsInRole(Security.Principal.WindowsBuiltInRole.Administrator))

 

这个我昨天试过了 不行,他只能判断你当前的用户如果是administrator才行

但是我这个账号是域账号,只是只存在于本地管理员组,这个判断失效,所以才想到文件判断的方法


 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2016/9/7 11:27:00 [只看该作者]

能不能实现?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/7 12:02:00 [只看该作者]

试试

Dim id As Security.Principal.WindowsIdentity = Security.Principal.WindowsIdentity.GetCurrent()
Dim principal As New Security.Principal.WindowsPrincipal(id)
Output.Show( principal.IsInRole("SomeDomain\Domain Users") AndAlso principal.IsInRole(Security.Principal.WindowsBuiltInRole.Administrator))


"SomeDomain\Domain Users"为“域名称\域角色”形式

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2016/9/7 12:44:00 [只看该作者]

以下是引用有点蓝在2016/9/7 12:02:00的发言:
试试

Dim id As Security.Principal.WindowsIdentity = Security.Principal.WindowsIdentity.GetCurrent()
Dim principal As New Security.Principal.WindowsPrincipal(id)
Output.Show( principal.IsInRole("SomeDomain\Domain Users") AndAlso principal.IsInRole(Security.Principal.WindowsBuiltInRole.Administrator))


"SomeDomain\Domain Users"为“域名称\域角色”形式

 

蓝总,还是不行


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/7 14:09:00 [只看该作者]

那不会了,vc的代码我也看不来

 回到顶部