我有一个脚本,需要在我公司的Active Directory上显示用户列表。
要执行此操作,我使用了专用的AD帐户(已授权在AD上进行搜索)。我这样做是这样的:
DataGridCellBackgroundBrush
然后,我正在搜索
DataGridBorderBrush
这样做,问题是当我在本地运行脚本(使用xampp)时,我失去了当前的帐户特权(如Internet访问,因为标准帐户没有此权限?)。
如果我想以真实个人资料重新登录,则需要运行一个使用我自己的凭据对我进行身份验证的脚本(ldap_bind())。
有什么解决方案可以避免丢失我的主要身份验证?我应该以其他方式进行研究吗?
答案 0 :(得分:0)
尝试下面的示例,看看它是否有效。它列出了所有用户。根据需要更改变量。查看this了解更多示例。
$username = 'yowyow';
$password = '123123';
$server = '192.168.32.4';
$domain = '@yourdomain.local';
$port = 389;
$connection = ldap_connect($server, $port);
if (!$connection) {
exit('Connection failed');
}
// Help talking to AD
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);
$bind = @ldap_bind($connection, $username.$domain, $password);
if (!$bind) {
exit('Binding failed');
}
// This is where you can do your work
$unit = 'sales';
$distinguished_name = "OU=$unit,DC=yourdomain,DC=local";
$filter = "(sAMAccountName=*)";
$search = ldap_search($ldap_connection, $distinguished_name, $filter);
$total_record = ldap_count_entries($ldap_connection, $search);
$returned = ldap_get_entries($ldap_connection, $search);
if ($total_record > 0) {
print_r($returned);
}
// End
ldap_close($ldap_connection);