以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]能帮忙判断下当前域账号是否有本地管理员权限?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90168)

--  作者:jiskin
--  发布时间: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;
}

 


--  作者:有点蓝
--  发布时间: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
--  发布时间: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
--  发布时间:2016/9/7 11:27: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"为“域名称\\域角色”形式

--  作者:jiskin
--  发布时间: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"为“域名称\\域角色”形式

 

蓝总,还是不行


--  作者:有点蓝
--  发布时间:2016/9/7 14:09:00
--  
那不会了,vc的代码我也看不来