То, чего я пытаюсь добиться, - это передавать учетные данные / токен службам WCF при каждом запросе.Кстати, эти учетные данные НЕ являются учетными данными Windows, они получены из пользовательских БД, и логика аутентификации довольно проста, tenantId + имя пользователя + пароль.
В настоящее время я использую инспектор сообщений, чтобы вставить такую информацию взаголовки и извлекайте их из инспектора на стороне сервера (используя OperationContext
).
Но чтобы оставаться поточно-ориентированным, я должен обернуть запросы в каждый запрос winform следующим образом:
using (new OperationContextScope((WcfService as ServiceClient).InnerChannel))
{
MessageHeader hdXXId = MessageHeader.CreateHeader("XXId", "CustomHeader", WinformSomeVariable.XXId);
OperationContext.Current.OutgoingMessageHeaders.Add(hdXXId);
_objXX = WcfService.GetXXById(id);
}
Как показано выше, это довольно тяжелый и явно не умный способ справиться с этой ситуацией.Так есть ли способ надежно хранить информацию такого рода, а также получить ее у инспекторов WCF?
Большое спасибо!
PS.Благодаря @Abraham Qian я все время был глупым.Просто поместите инспектора клиента в тот же проект winform, чтобы решить эту проблему.