Мне нужно получить исходный URL-адрес в моем веб-сервисе WCF rest. Теперь мой код выглядит так:
public class MyServiceAuthorizationManager : ServiceAuthorizationManager
{
protected override bool CheckAccessCore(OperationContext operationContext)
{
base.CheckAccessCore(operationContext);
var url = operationContext.IncomingMessageProperties.Via.OriginalString;
...
web.config
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
если мой исходный URL-адрес
http://192.168.1.100:8081/test
этот код возврата
http://hostname:8081/test
есть ли способ получить точный исходный URL-адрес запроса?
Примечание
Я нашел сообщения, рассказывающие о теге cutomize "baseAddress" в web.config, но у меня нет конкретной конечной точки для моего веб-сервиса extensionles, и я не хочу его добавлять. Я не знаю, есть ли способ сделать это без конечной точки.
Я нашел это сообщение
https://stackoverflow.com/a/5915713/735864 играет с System.Net.HttpRequestHeader.Host, но с номером порта не работает! Я знаю, что могу разобрать предоставленный URL и выполнить замену, но ... я не думаю, что это лучшая практика для достижения этой цели.