首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP LDAP获取用户SID

PHP LDAP获取用户SID
EN

Stack Overflow用户
提问于 2016-09-16 14:07:39
回答 4查看 5K关注 0票数 3

我不知道如何在AD中获得用户唯一标识符(SID)。代码片段:

代码语言:javascript
复制
...    
$filter="(&(samaccountname=".$this->username.")(memberOf:1.2.840.113556.1.4.1941:=CN=GROUP_NAME,OU=Security,DC=something,DC=something))";
    $attribute = array("cn","objectsid","description", "group", "member", "samaccountname");
    $sr=ldap_search($this->conn_ldap, $this->ldap_dn, $filter, $attribute);

    if ($sr) 
    {

    $this->info = ldap_get_entries($this->conn_ldap, $sr);
    if ($this->info["count"] == 1){

    ldap_close($this->conn_ldap);
    return true;
    }
    ... 

我可以通过以下方式获取信息:

代码语言:javascript
复制
echo $this->info[0]["cn"][0];

代码语言:javascript
复制
echo $this->info[0]["objectsid"][0];

在第一个输出中,我可以看到0�@�d^�WL7�U中的用户名称,我认为sid应该像S-......一样

EN

Stack Overflow用户

发布于 2019-01-10 04:58:57

这在64位系统上有效,我认为它更简洁。

代码语言:javascript
复制
function bin_to_str_sid($binsid) {
    $parts = unpack('Crev/x/nidhigh/Nidlow', $binsid);
    $ssid = sprintf('S-%u-%d',  $parts['rev'], ($parts['idhigh']<<32) + $parts['idlow']);
    $parts = unpack('x8/V*', $binsid);
    if ($parts) $ssid .= '-';
    $ssid .= join('-', $parts);
    return $ssid;
}
票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39533560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档