Мне нужно восстановить исходный URL-адрес запроса в моем веб-сервисе WCF. Теперь мой код выглядит следующим образом:
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
этот код возвращает
Есть ли способ получить точный исходный URL-адрес запроса?
Примечание
Я нашел сообщения, которые говорят о cutomize теге baseAddress в web.config, но у меня нет конкретной конечной точки fum моего расширения webservice, и я не хочу ее добавлять. Я не знаю, есть ли способ сделать это без конечной точки.
Я нашел этот пост qaru.site/info/401168/... играет с System.Net.HttpRequestHeader.Host, но с номером порта он не работает! Я знаю, что могу разобрать предоставленный url и сделать Replace, но... Я не думаю, что это лучшая практика для достижения этого.