У меня есть веб-страница, которая использует сервис WCF.Несколько пользователей могут использовать веб-страницу в любое время и, следовательно, делать запросы к службе WCF, которая находится на удаленной машине.
Каждый пользователь на веб-странице получает уникальный идентификатор, я хочу добавить этот уникальный идентификаторк заголовку запроса каждого запроса, сделанного этим пользователем.
До сих пор я создал следующий код, который правильно добавляет заголовок к сообщению WCF.
public class HeaderIdPusher : IClientMessageInspector
{
private static readonly string _balancerKey = "balancerId";
public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
Guid userId = Guid.NewGuid();
HttpRequestMessageProperty httpRequestMessage;
object httpRequestMessageObject;
if (request.Properties.TryGetValue(HttpRequestMessageProperty.Name, out httpRequestMessageObject))
{
httpRequestMessage = httpRequestMessageObject as HttpRequestMessageProperty;
if (string.IsNullOrEmpty(httpRequestMessage.Headers[_balancerKey]))
{
httpRequestMessage.Headers[_balancerKey] = userId.ToString();
}
}
else
{
httpRequestMessage = new HttpRequestMessageProperty();
httpRequestMessage.Headers.Add(_balancerKey, userId.ToString());
request.Properties.Add(HttpRequestMessageProperty.Name, httpRequestMessage);
}
return null;
}
public void AfterReceiveReply(ref Message reply, object correlationState)
{
}
}
Однако я не застрялпотому что я не могу получить идентификатор для сохранения между запросами.Здесь вы можете видеть, что в данный момент я генерирую идентификатор для каждого запроса, однако я не могу сохранить его в сеансе страницы, на которой находится пользователь, поскольку HttpContext.Current имеет значение null.Есть ли другой способ сохранить это?Есть ли другой способ передачи HttpContext пользователя на моей веб-странице?