За последние 24 часа нас посетили 59237 программистов и 1816 роботов. Сейчас ищут 1416 программистов ...

как objectSID из AD перевести в текст?

Тема в разделе "PHP для новичков", создана пользователем columbia100, 16 фев 2008.

  1. columbia100

    columbia100 Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Приветствую All!
    Помогите, с решением.

    Имеем строку objectSID из Active Directory вида: S-1-5-21-759505009-890745833-1606760577-1004
    Как мне ее с помощью php перевести в текстовый вид?

    Заранее спасибо!
     
  2. Anonymous

    Anonymous Guest

    мммм... а она в каком?
     
  3. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Точнее - а каким способом ты её получаешь?
     
  4. columbia100

    columbia100 Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    получаю через LDAP
    эта строка = имя пользователя

    т.е. запрашивая ее, я получаю читабельный текст

    вот, я и хочу запрашивать данную строку через php получит имя пользователя
     
  5. Anonymous

    Anonymous Guest

    PHP:
    1.  
    2. <?php
    3. function littleEndian($hex) {
    4.    for ($x=strlen($hex)-2; $x >= 0; $x=$x-2) {
    5.        $result .= substr($hex,$x,2);
    6.    }
    7.    return $result;
    8. }
    9.  
    10. // Returns the textual SID
    11. function binSIDtoText($binsid) {
    12.    $hex_sid=bin2hex($binsid);
    13.    $rev = hexdec(substr($hex_sid,0,2));          // Get revision-part of SID
    14.    $subcount = hexdec(substr($hex_sid,2,2));    // Get count of sub-auth entries
    15.    $auth = hexdec(substr($hex_sid,4,12));      // SECURITY_NT_AUTHORITY
    16.    $result = "$rev-$auth";
    17.    for ($x=0;$x < $subcount; $x++) {
    18.        $subauth[$x] = hexdec(littleEndian(substr($hex_sid,16+($x*8),8)));  // get all SECURITY_NT_AUTHORITY
    19.        $result .= "-".$subauth[$x];
    20.    }
    21.    return $result;
    22. }
    23.  
    24. echo binSIDtoText($bin_sid);
    25. ?>
    Оно?
     
  6. columbia100

    columbia100 Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    приветсвую!

    да, этот код видел.

    только, не понял куда мне вставлят SID.
    т.е. мне прямо нужно указать SID вида: S-1-5-21-759505009-890745833-1606760577-1004 итого = имя пользователя.

    Извиняюсь, если очень тупо...
     
  7. columbia100

    columbia100 Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Более полная задача:

    я SID выдергиваю из MS Access таблицы, мне его нужно преоброзовать в нормальный текст (в данном случае, это имя пользователя) и отобразить в вебе.
     
  8. Anonymous

    Anonymous Guest

    Хех. Никак. Можно запросить данные из AD для этого objectSID. Сам по себе SID не несет никакой информации.
     
  9. columbia100

    columbia100 Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Ok, есть SID вида: S-1-5-21-759505009-890745833-1606760577-1004 , как его сопоставить пользователю AD ?

    Просто когда делаю вывести всех пользователей, то все работает. НО у меня есть строковой параметр в MS Access базе в виде сида этого пользователя и я хочу его выдернуть из базы и сопоставить с AD и чтобы в web у меня отоброзилось имя пользователя, а не этот непонятны набор цифр.