Запрос пользовательского языка на Exchange 2003 с использованием WebDAV

Как я могу программно запрашивать язык / язык / регион пользователя из Exchange 2003?

Я использую API Индепендентсофт Exchange WebDAV. Я пытаюсь получить подпись метода, как:

public string GetUsersLanguage(string username, string password){
   //magic

   //return fr-FR, or en-US, or nl-NL, etc
}

Exchange 2003 настроит папки по умолчанию (Входящие, Календарь и т. Д.), Чтобы они соответствовали локали пользователя при первом доступе к почтовому ящику. Поэтому Inbox становится Postvak IN для голландцев. Я бы предпочел не проверять папки верхнего уровня и сопоставлять их с таблицей поиска; есть ли другой способ?

API WebDAV имеет свойство getcontentlanguage, которое выглядит так, как будто оно должно содержать связанный язык для почтового ящика (или, по крайней мере, папку верхнего уровня, например, "Входящие"), но всякий раз, когда я запрашиваю это поле, Exchange возвращает 404:

Скриншот скрипача

1 ответ

Решение

Я смог получить что-то близкое, но не совсем то, что я ищу. Exchange 2003 OWA имеет свойство spellingdictionarylanguage это может содержать близкое приближение к культуре пользователя. Я говорю, могло бы быть причиной этого поля, только если оно установлено, если пользователь вошел в OWA Premium (через IE в режиме совместимости) и явно установил Spelling Dictionary.

Resource resource = new Resource(session);

var allProps = resource.GetProperties();

Console.WriteLine(
    "Culture (Best Guess via Spelling Langauge): " +
     allProps
         .Where(x => x.Name == "spellingdictionarylanguage")
         .Select(x => x.Value)
         .FirstOrDefault() ?? "");

Надеюсь, есть еще лучший способ сделать это.

Другие вопросы по тегам