none
LDAP and result encoding

    Dotaz

  • Hello,
    I've a small problem and no result. I have user name and I query LDAP (Oracle on Unix) for first name, second name and email by this code:

    DirectoryEntry entry = new DirectoryEntry("LDAP://..." );
    entry.AuthenticationType = AuthenticationTypes.None;

    using (DirectorySearcher ds = new DirectorySearcher(entry))
    {
      ds.Filter = "cn=...";
      ds.PropertiesToLoad.Add("givenname");
      ds.PropertiesToLoad.Add("sn");
      ds.PropertiesToLoad.Add("mail");

      SearchResult result = ds.FindOne();
      if (result != null)
      {
        listBox1.Items.Add("First: " + Convert.ToString(result.Properties["givenname"][0]));
        listBox1.Items.Add("Second: " + Convert.ToString(result.Properties["sn"][0]));
      }
    }

    When I run this code in WinForm, return is OK. When I run same code in ASP.NET, result has bad encoding (czech chars). In web.config I have setting:

    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="cs-CZ" uiCulture="cs-CZ" />

    I tried many settings, decode result text with no result.

    Thanks for every tip
    Jaromir Solar
    9. února 2010 9:38

Odpovědi

  • Když debugujute svůj kód, co vidíte v result.Properties? Je tam správně čeština, pokud si necháte zobrazit hodnoty přes Watch?
    Já myslím, že v samotném vyzvedávání hodnot z LDAP problém nebude, spíš budete mít zmatek v encodingu stránek jako takových.
    Nedá se čeština zkorigovat tím, že v browseru zvolíte jiný encoding? To by ukazovalo, že máte nekonzistenci mezi skutečným kódováním stránky a kódováním, které si browser myslí, že používáte (buď mu to neříkáte vůbec, nebo špatně).

    Zkuste třeba meta-tag s nastavením na utf-8, jestli to nepomůže...
    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    17. února 2010 19:37
    Moderátor