Как я могу получить вызывающий URL-адрес от ASP.NET ядро 3.1 httprequest
Мне нужно знать URL-адрес (по крайней мере, имя сервера) HttpRequest в моем приложении.
www.request.com посылает запрос в мой сервис (www.mywebserver.com).
К сожалению, документы Microsoft менее чем адекватны в объяснении того, что такое свойства для HttpRequest.
Рассматриваемое дело:
Класс HttpRequest (Microsoft.AspNetCore.Протокол HTTP) | Майкрософт Документы[^]
PathBase - возвращает или задает RequestPathBase.
Нажатие на PathBase дает этот лакомый кусочек информации:
Возвращает или задает RequestPathBase.
Перефразируя здесь: это тип PathString, и это RequestPathBase.
Это круг, если вы не знаете терминологии. Это моя pathbase (куда направляется запрос) или pathbase вызывающего веб-сервера (откуда пришел запрос).
Ни в малейшей степени не помогает.
Я был бы счастлив получить конкретный ответ на свой вопрос (Как получить URL-адрес вызывающего веб-сайта), но я был бы в восторге от ответа, который мог бы указать мне на то, что на самом деле представляют собой все методы/свойства/методы расширения и что они делают.
Спасибо,
Брайан Клаусс
Что я уже пробовал:
Поищите в интернете примеры, которые действительно объясняют объект HttpRequest, а не примеры, предполагающие, что вы уже знаете, что все это значит.
Sandeep Mewara
А вы пробовали:
1. Microsoft.AspNetCore.Протоколу HTTP.Расширения.Урихелпер.GetFullUrl(запрос) или
2.
public static class HttpRequestExtensions{ public static string GetRawTarget(this HttpRequest request) { var httpRequestFeature = request.HttpContext.Features.Get<IHttpRequestFeature>(); return httpRequestFeature.RawTarget; } }
F-ES Sitecore
Заголовок, который вы ищете, - это реферер, как указано Ричардом в решении 1, однако он обычно заполняется только тогда, когда кто-то перемещается через браузер. Если вызов выполняется программно, например вызов API, то реферер будет заполнен только в том случае, если вызывающий код предоставляет его, чего он, вероятно, не делает. Если заголовок реферера не содержит необходимых вам данных, то нет никакого способа получить эти данные, поскольку что-либо может вызвать Ваш url-адрес, это не обязательно должен быть веб-сайт в общественном достоянии.