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 base object of the search request specifies the DN "".

  • 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.