Почему я не получаю заголовок мыла? - PullRequest
0 голосов
/ 01 октября 2010

Почему это так сложно в WCF 4.0

Я добавляю собственный заголовок в мой клиент

Авторизация: 18732818 gfdsgShoyh3sfayql6jWCRc =

так, чтобы мой заголовок выглядел следующим образом

GET http://HOSTNAME/Public/Xml/SyncReply/TestClearUsername?Id=1 HTTP / 1.1

Авторизация: 18732818 gfdsgShoyh3sfayql6jWCRc =

Хост: HOSTNAME

Соединение: Keep-Alive

в моем проводном респонденте службы я могу получить доступ к свойству Id и получить значение 1. Я также хотел бы получить доступ к значению Авторизация, но оно всегда отображается как ноль.

Что я делаю не так?

1 Ответ

0 голосов
/ 03 октября 2010

После долгих поисков я наконец нашел ответ на этот вопрос, поэтому я опубликую его здесь, чтобы он мог быть полезен кому-то еще.Я предполагаю, что это недокументированная особенность, поскольку она так хорошо скрыта, но кто-то другой может знать другое.

Я нашел это перечисление System.Web.HttpWorkerRequest.HeaderAuthorization (значение = 24)

и этот методSystem.Web.HttpWorkerRequest.GetKnownRequestHeader(24)

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

.GetUnknownRequestHeader("YOUR_WORD_HERE").

, поэтому в полном объеме вам нужно

HttpRequestContext hrc = (HttpRequestContext)this.RequestContext;

RequestAttributes ra = (RequestAttributes)hrc.RequestAttributes;

System.Web.HttpWorkerRequest hwr = ra.HttpWorkerRequest;

string Auth = hwr.GetKnownRequestHeader(System.Web.HttpWorkerRequest.HeaderAuthorization);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...