LinkGenerator GetPathByPage не возвращает полный Uri - PullRequest
1 голос
/ 20 марта 2019

Я использую LinkGenerator в моей службе EmailSender внутри проекта ASP.NET Core 2.2 MVC. Сначала он возвращал значения Null, пока не понял, что мне нужно включить область в определение. Тем не менее, URL все еще не предоставляет информацию о сервере, которую я ожидал.

Он генерирует URL выглядит следующим образом: "/Identity/Account/Login... "

Я ожидал этого: "https://{hostName}/Identity/Account/Login..."

Моя работа заключается в объединении значений из httpContextAccessor в том виде, в котором они были опубликованы. Но, это кажется странным. Кто-нибудь может дать мне направление, как это должно работать?

Работа вокруг (не велика):

var callbackUrl = $"{httpContextAccessor.HttpContext.Request.Scheme}://" +
                  $"{httpContextAccessor.HttpContext.Request.Host}" +
                  linkGenerator.GetPathByPage(httpContextAccessor.HttpContext,
                            "/Account/Login", null, new {area = "Identity", userId = user.Id});

1 Ответ

2 голосов
/ 21 марта 2019

По умолчанию linkGenerator.GetPathByPage вернет относительный путь. Если вам нужен полный Uri, включая Scheme и Host, то вам придется использовать другой метод GetUriByPage, также предоставляемый LinkGenerator, следующим образом:

var callbackUrl = linkGenerator.GetUriByPage(httpContextAccessor.HttpContext,
    "/Account/Login", null, new {area = "Identity", userId = user.Id});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...