Веб-служба WCF проверяет значения заголовков и анализирует тело - PullRequest
0 голосов
/ 04 января 2012

У меня запущена веб-служба WCF, которая принимает следующее (REST):

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/StatusUpdate")]
string SMSUpdateStatus(Stream input);

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/ReceiveSMS")]
string SMSReceived(Stream input);

Чтобы аутентифицировать запрос, мне нужно объединить каждое значение, переданное в приложении POST (ContentType:/ x-www-form-urlencoded), хэшируйте их с определенным ключом, а затем сравнивайте его с определенным значением заголовка.

У меня это работало нормально без проверки, используя что-то вроде этого:

StreamReader sr = new StreamReader(input);
string s = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(s));

string Val1= qs["val_a"];
string Val2= qs["val_b"];

Я не могу понять, как извлечь значение заголовка (что мне нужно сделать для моего сравнения) или разделить мою коллекцию NameValueCollection, которая, кажется, просто хранит всю мою полезную нагрузку в одном ключе.

1 Ответ

1 голос
/ 04 января 2012

Возможно, пытается:

OperationContext.Current.IncomingMessageHeaders

будет полезным? Я не проверял это, но мне интересно услышать ваши результаты

...