request.format, возвращающийся */*

Alan уже дал Вам, правильный ответ - использует sAMAccountName для фильтрации пользователя.

я добавил бы рекомендацию на Вашем использовании DirectorySearcher - если Вы только хотите одно или два сведения, добавьте их в "PropertiesToLoad" набор DirectorySearcher.

Вместо того, чтобы получить целый большой пользовательский объект и затем выбрать один или два объекта, это просто возвратит точно те биты, в которых Вы нуждаетесь.

Образец:

adSearch.PropertiesToLoad.Add("sn");  // surname = last name
adSearch.PropertiesToLoad.Add("givenName");  // given (or first) name
adSearch.PropertiesToLoad.Add("mail");  // e-mail addresse
adSearch.PropertiesToLoad.Add("telephoneNumber");  // phone number

Это - просто обычное свойство AD/LDAP, называет Вас, должен определить.

8
задан Kevin Robatel 15 May 2017 в 20:31
поделиться

2 ответа

* / * означает, что пользовательский агент принимает все форматы, и ему все равно, какой формат вы ему зададите. Я считаю, что Safari делает это, среди прочего. По умолчанию curl отправляет заголовок Accept * / * .

Вот дамп заголовков, которые curl отправляет по умолчанию:

User-Agent: curl/7.18.1 (i386-apple-darwin9.6.0) libcurl/7.18.1 zlib/1.2.3
Host: example.com
Accept: */*
Content-Type: 

Однако , в этом случае похоже, что вы хотите отправить обратно XML, если отправленная вам полезная нагрузка была XML? В этом случае вы хотите напрямую проверить заголовок Content-Type запроса. то есть, request.content_type - это тот метод, который вам нужен.

Addenda: Я подумал об этом немного подробнее и считаю, что лучше всего сначала проверить request.format , и только если это не дает результатов, проверьте request.content_type . По сути, спецификация HTTP предусматривает, что клиенты могут сообщать серверам: «Я даю вам XML, но я хочу вернуть JSON». Заголовок Accept - это то, как клиенты сообщают вам, что они хотят вернуть, и если кто-то действительно отправляет это, вы должны это соблюдать. Используйте Content-Type запроса только в качестве подсказки, если клиент не указал.

15
ответ дан 5 December 2019 в 11:25
поделиться

*/* simply means that all MIME types are accepted.

Looking at the code for the request.format method, the MIME type is determined by the file extension, or if that's not present then by the value of the HTTP Accept header. So you either need to pass Curl an XML file saved to disk, or get Curl to set the Accept header to an XML MIME type (e.g. text/xml) when it makes the request to your API.

0
ответ дан 5 December 2019 в 11:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: