3.1.1.3.4.1.13 LDAP_SERVER_SORT_OID and LDAP_SERVER_RESP_SORT_OID
This request control and its corresponding response control, LDAP_SERVER_RESP_SORT_OID, are documented in [RFC2891].
DCs only support sorting on a single attribute at a time. Therefore, the client constructs a SortKeyList that contains only one sequence. DCs running Windows 2000 operating system do not support ordering rules when sorting, so the client omits the orderingRule field of the SortKeyList when sending this control to a DC running Windows 2000; sorting uses the English: United States sort order. Starting with Windows Server 2003 operating system, DCs support ordering rules for the sort orders specified in the following table; if no ordering rule is specified, the DC uses the English: United States sort order. Section 6.5 specifies, by reference to [MS-UCODEREF], the effect of each sort order. Section 2.2.1 specifies the mapping between the sort orders that follow and the LCIDs used in section 6.5.
-
Ordering rule OID
Sort order
1.2.840.113556.1.4.1461
Afrikaans
1.2.840.113556.1.4.1462
Albanian
1.2.840.113556.1.4.1463
Arabic: Saudi Arabia
1.2.840.113556.1.4.1464
Arabic: Iraq
1.2.840.113556.1.4.1465
Arabic: Egypt
1.2.840.113556.1.4.1466
Arabic: Libya
1.2.840.113556.1.4.1467
Arabic: Algeria
1.2.840.113556.1.4.1468
Arabic: Morocco
1.2.840.113556.1.4.1469
Arabic: Tunisia
1.2.840.113556.1.4.1470
Arabic: Oman
1.2.840.113556.1.4.1471
Arabic: Yemen
1.2.840.113556.1.4.1472
Arabic: Syria
1.2.840.113556.1.4.1473
Arabic: Jordan
1.2.840.113556.1.4.1474
Arabic: Lebanon
1.2.840.113556.1.4.1475
Arabic: Kuwait
1.2.840.113556.1.4.1476
Arabic: UAE
1.2.840.113556.1.4.1477
Arabic: Bahrain
1.2.840.113556.1.4.1478
Arabic: Qatar
1.2.840.113556.1.4.1479
Armenian
1.2.840.113556.1.4.1480
Assamese
1.2.840.113556.1.4.1481
Azeri: Latin
1.2.840.113556.1.4.1482
Azeri: Cyrillic
1.2.840.113556.1.4.1483
Basque
1.2.840.113556.1.4.1484
Belarussian
1.2.840.113556.1.4.1485
Bengali
1.2.840.113556.1.4.1486
Bulgarian
1.2.840.113556.1.4.1487
Burmese
1.2.840.113556.1.4.1488
Catalan
1.2.840.113556.1.4.1489
Chinese: Taiwan
1.2.840.113556.1.4.1490
Chinese: PRC
1.2.840.113556.1.4.1491
Chinese: Hong Kong SAR
1.2.840.113556.1.4.1492
Chinese: Singapore
1.2.840.113556.1.4.1493
Chinese: Macau SAR
1.2.840.113556.1.4.1494
Croatian
1.2.840.113556.1.4.1495
Czech
1.2.840.113556.1.4.1496
Danish
1.2.840.113556.1.4.1497
Dutch
1.2.840.113556.1.4.1498
Dutch:Belgium
1.2.840.113556.1.4.1499
English: United States
1.2.840.113556.1.4.1500
English: United Kingdom
1.2.840.113556.1.4.1665
English: Australia
1.2.840.113556.1.4.1666
English: Canada
1.2.840.113556.1.4.1667
English: New Zealand
1.2.840.113556.1.4.1668
English: Ireland
1.2.840.113556.1.4.1505
English: South Africa
1.2.840.113556.1.4.1506
English: Jamaica
1.2.840.113556.1.4.1507
English: Caribbean
1.2.840.113556.1.4.1508
English: Belize
1.2.840.113556.1.4.1509
English:Trinidad
1.2.840.113556.1.4.1510
English: Zimbabwe
1.2.840.113556.1.4.1511
English: Philippines
1.2.840.113556.1.4.1512
Estonian
1.2.840.113556.1.4.1513
Faeroese
1.2.840.113556.1.4.1514
Persian
1.2.840.113556.1.4.1515
Finnish
1.2.840.113556.1.4.1516
French: France
1.2.840.113556.1.4.1517
French: Belgium
1.2.840.113556.1.4.1518
French: Canada
1.2.840.113556.1.4.1519
French: Switzerland
1.2.840.113556.1.4.1520
French: Luxembourg
1.2.840.113556.1.4.1521
French: Monaco
1.2.840.113556.1.4.1522
Georgian
1.2.840.113556.1.4.1523
German: Germany
1.2.840.113556.1.4.1524
German: Switzerland
1.2.840.113556.1.4.1525
German: Austria
1.2.840.113556.1.4.1526
German: Luxembourg
1.2.840.113556.1.4.1527
German: Liechtenstein
1.2.840.113556.1.4.1528
Greek
1.2.840.113556.1.4.1529
Gujarati
1.2.840.113556.1.4.1530
Hebrew
1.2.840.113556.1.4.1531
Hindi
1.2.840.113556.1.4.1532
Hungarian
1.2.840.113556.1.4.1533
Icelandic
1.2.840.113556.1.4.1534
Indonesian
1.2.840.113556.1.4.1535
Inukitut
1.2.840.113556.1.4.1536
Italian:Italy
1.2.840.113556.1.4.1537
Italian:Switzerland
1.2.840.113556.1.4.1538
Japanese
1.2.840.113556.1.4.1539
Kannada
1.2.840.113556.1.4.1540
Kashmiri Arabic
1.2.840.113556.1.4.1541
Kashmiri
1.2.840.113556.1.4.1542
Kazakh
1.2.840.113556.1.4.1543
Khmer
1.2.840.113556.1.4.1544
Kirghiz
1.2.840.113556.1.4.1545
Konkani
1.2.840.113556.1.4.1546
Korean
1.2.840.113556.1.4.1547
Korean:Johab
1.2.840.113556.1.4.1548
Latvian
1.2.840.113556.1.4.1549
Lithuanian
1.2.840.113556.1.4.1550
North Macedonian
1.2.840.113556.1.4.1551
Malaysian
1.2.840.113556.1.4.1552
Malay Brunei Darussalam
1.2.840.113556.1.4.1553
Malayalam
1.2.840.113556.1.4.1554
Maltese
1.2.840.113556.1.4.1555
Manipuri
1.2.840.113556.1.4.1556
Marathi
1.2.840.113556.1.4.1557
Nepali:Nepal
1.2.840.113556.1.4.1558
Norwegian:Bokmal
1.2.840.113556.1.4.1559
Norwegian:Nynorsk
1.2.840.113556.1.4.1560
Odia
1.2.840.113556.1.4.1561
Polish
1.2.840.113556.1.4.1562
Portuguese:Brazil
1.2.840.113556.1.4.1563
Portuguese:Portugal
1.2.840.113556.1.4.1564
Punjabi
1.2.840.113556.1.4.1565
Romanian
1.2.840.113556.1.4.1566
Russian
1.2.840.113556.1.4.1567
Sanskrit
1.2.840.113556.1.4.1568
Serbian:Cyrillic
1.2.840.113556.1.4.1569
Serbian:Latin
1.2.840.113556.1.4.1570
Sindhi:India
1.2.840.113556.1.4.1571
Slovak
1.2.840.113556.1.4.1572
Slovenian
1.2.840.113556.1.4.1573
Spanish: SpainTraditional Sort
1.2.840.113556.1.4.1574
Spanish: Mexico
1.2.840.113556.1.4.1575
Spanish: SpainModern Sort
1.2.840.113556.1.4.1576
Spanish: Guatemala
1.2.840.113556.1.4.1577
Spanish: Costa Rica
1.2.840.113556.1.4.1578
Spanish: Panama
1.2.840.113556.1.4.1579
Spanish: Dominican Republic
1.2.840.113556.1.4.1580
Spanish: Venezuela
1.2.840.113556.1.4.1581
Spanish: Colombia
1.2.840.113556.1.4.1582
Spanish: Peru
1.2.840.113556.1.4.1583
Spanish: Argentina
1.2.840.113556.1.4.1584
Spanish: Ecuador
1.2.840.113556.1.4.1585
Spanish: Chile
1.2.840.113556.1.4.1586
Spanish: Uruguay
1.2.840.113556.1.4.1587
Spanish: Paraguay
1.2.840.113556.1.4.1588
Spanish: Bolivia
1.2.840.113556.1.4.1589
Spanish: El Salvador
1.2.840.113556.1.4.1590
Spanish: Honduras
1.2.840.113556.1.4.1591
Spanish: Nicaragua
1.2.840.113556.1.4.1592
Spanish: Puerto Rico
1.2.840.113556.1.4.1593
Swahili: Kenya
1.2.840.113556.1.4.1594
Swedish
1.2.840.113556.1.4.1595
Swedish: Finland
1.2.840.113556.1.4.1596
Tamil
1.2.840.113556.1.4.1597
Tatar: Tatarstan
1.2.840.113556.1.4.1598
Telugu
1.2.840.113556.1.4.1599
Thai
1.2.840.113556.1.4.1600
Turkish
1.2.840.113556.1.4.1601
Ukrainian
1.2.840.113556.1.4.1602
Urdu: Pakistan
1.2.840.113556.1.4.1603
Urdu: India
1.2.840.113556.1.4.1604
Uzbek: Latin
1.2.840.113556.1.4.1605
Uzbek: Cyrillic
1.2.840.113556.1.4.1606
Vietnamese
1.2.840.113556.1.4.1607
Japanese: XJIS
1.2.840.113556.1.4.1608
Japanese: Unicode
1.2.840.113556.1.4.1609
Chinese: Big5
1.2.840.113556.1.4.1610
Chinese: PRCP
1.2.840.113556.1.4.1611
Chinese: Unicode
1.2.840.113556.1.4.1612
Chinese: PRC
1.2.840.113556.1.4.1613
Chinese: BOPOMOFO
1.2.840.113556.1.4.1614
Korean: KSC
1.2.840.113556.1.4.1615
Korean: Unicode
1.2.840.113556.1.4.1616
German Phone Book
1.2.840.113556.1.4.1617
Hungarian: Default
1.2.840.113556.1.4.1618
Hungarian: Technical
1.2.840.113556.1.4.1619
Georgian: Traditional
1.2.840.113556.1.4.1620
Georgian: Modern
Windows Server 2008 operating system and later support an additional sort behavior called "phonetic display name sort". This behavior is triggered by specifying "msDS-PhoneticDisplayName;extended" as the attributeType in the SortKeyList ([RFC2891] section 1.1). When this option is present, the DC checks that the LDAP request satisfies the following requirements:
The operation is an LDAP search request.
The orderingRule field specifies the Japanese sort order (namely, "1.2.840.113556.1.4.1538").
The LDAP_CONTROL_VLVREQUEST control is attached to the search.
The search request has been sent to a global catalog port (port 3268 or 3269).
The scope of the search request is wholeSubtree.
The filter is set to (&(showInAddressBook=X)(displayName=*)), where X is a distinguished name and there exists an object O such that O!objectClass = addressBookContainer and O!distinguishedName = X.
If one or more of these criteria are not satisfied, the server returns the error unwillingToPerform / <unrestricted>.
If all of these criteria are satisfied, the DC performs a phonetic display name sort. In this sort, the search results are sorted on the msDS-PhoneticDisplayName attribute, using the Japanese sort order, in the normal fashion, except that if an object O does not have a value for the msDS-PhoneticDisplayName attribute but does have a value V for the displayName attribute, the server treats V as the value of O!msDS-PhoneticDisplayName for the purposes of the sort.
For example, consider an unsorted search result set consisting of four objects, as shown in the following table. Note that object #2 does not have a value for msDS-PhoneticDisplayName.
-
Object #
msDS-PhoneticDisplayName value
displayName value
1
A
C
2
D
3
B
E
4
F
C
Assuming for the purpose of this example that the letters A...Z sort in the order {A, ..., Z}, the results of performing a phonetic display name sort on the preceding data is the following.
-
Object #
msDS-PhoneticDisplayName value
displayName value
1
A
C
3
B
E
2
D
4
F
C
In particular, object #2 was placed before object #4 because the sort treated it as if it had the value "D" for its msDS-PhoneticDisplayName attribute.