Я пытаюсь выполнить базовую проверку подлинности в запросе WCF RequestInterceptor. Я использую эту статью в качестве начала.
Я сталкиваюсь с проблемой связи между перехватчиком и службой. Ничто из того, что я пробовал, похоже, не работает. Пока что я пробовал:
- OperationContext.Current
- requestContext.RequestMessage.Properties [HttpRequestMessageProperty.Name] ["foo"] = значение
- HttpContext.Current.Request
Но независимо от того, что я установил, я не могу получить к нему доступ в самом поведении службы:
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )]
[ServiceBehavior( InstanceContextMode = InstanceContextMode.Single )]
public class AdvertiserService : ApiServiceBase<AdvertiserDataAccessor>, IAdvertiserService
{
[WebGet( UriTemplate = "" )]
public List<Advertiser> GetAdvertisers()
{
var request = HttpContext.Current.Request;
var headers = HttpContext.Current.Request.Headers;
var p = HttpContext.Current.Request.Headers["Principal"];
OperationContext ctx = OperationContext.Current;
}
}
Мои вопросы:
Как передать данные между перехватчиком и службой?
Существует ли канонический способ передачи аутентификационной информации между ними (обратите внимание, аутентификационная информация - это UID в базе данных, а не идентификатор Windows)?
Спасибо