2

我编写了一个 C++ 程序,该程序旨在在连接到 Active Directory 设置中的域控制器的工作站上运行。它工作得很好,除了以下情况。

例如,用户将其安装在连接到 DC 的笔记本电脑上,但随后将该笔记本电脑从 Active Directory 环境中移开(例如,带着它回家,在 DC 无法访问的地方。)

有没有办法从我的软件中检测到这一点?

4

1 回答 1

2

我会尝试绑定或搜索 AD 中的已知对象。如果绑定成功,我们应该在域中。假设用户使用离线 AD 配置文件登录,您可以尝试绑定到当前用户:

IADs *pObject;
HRESULT hr;

CoInitialize(NULL);
hr = ADsGetObject(L"LDAP://CN=user,DC=domain,DC=com", IID_IADs, (void**) &pObject);

if(SUCCEEDED(hr))
{
    // AD is available
    pObject->Release()
}
else
{
    // AD is NOT available
}
CoUninitialize();

查看 MSDN 中的ADSI文档,其中大部分仅在您有权访问 AD 时才有效。

于 2012-11-19T02:01:30.533 回答