Почему Url.EmailConfirmationLink возвращает ноль - PullRequest
0 голосов
/ 30 декабря 2018

Я застрял на чем-то.

В новом сгенерированном коде проекта есть этот код, который создает URL, который можно вставить в электронное письмо.

public static string EmailConfirmationLink(this IUrlHelper urlHelper, string userId, string code, string scheme)
    {
        return urlHelper.Page(
            "/Account/ConfirmEmail",
            pageHandler: null,
            values: new { userId, code },
            protocol: scheme);
    }

Я используюэто, но всегда возвращает null.

Тем не менее, в другом месте кода, который создает URL для сброса пароля, он работает.Код идентичен, но один работает, а другой нет.Значит, что-то не так с параметрами.Но я не вижу разницы в параметрах.

Эти параметры работают:

схема: "https"

userId: "47520958-d9be-4f50-add3-b56bbe607db1"

код: "CfDJ8BDMTyrHOg9JlayOwfP2DlxkCwozoq0o5TmyKtmg1KC/+PPXvp/HwMC9LP+S1+NDYaMk9lVNRYHBAjfBWnfqJ9msre2t02eQSVQwrM0tx1bXd3cfbTFC0WYEkvSNWo8dkLIc3izlPsQJ+Xi1aq8D/skgQ6WoKI9Tsk8y53UdYq47W4iK6dhORZiU3h1L5dXWPJh2Cj6xfEy7u2hVhu4rjWYxyQz1ic7BfiJTkLMtHVot"

Это не:

ИД пользователя: "9e006f58-3869-4b99-aeb7-0cd7b4567013"

код: "CfDJ8BDMTyrHOg9JlayOwfP2DlwMwzc+RVxw6s8CXV/Uw3FYidocTDd0tk/VFUS3SCUMcWfttRTGtQL7cDbqwg9HX6r58xMqpyfqbMVFIiJD5/s37roSKU9FAAanbMJjgvAFiYiO3rXEntVfPcGimW5LTqeajaQrVOFAyAlNbqNqGbKJ9nmTo7hbFQ/zwk4TWbjt/nfK00V18C2+7bqcGJdX8ZS15K4kID68VU6nAAf5j5YpDoVp8hbVXZWF7Vi/S0yhNw=="

схема: "https"

1 Ответ

0 голосов
/ 31 декабря 2018

Оказывается, если страница находится под областью, область должна быть включена следующим образом:

 var callbackUrl = Url.Page(
    "/Account/ConfirmEmail",
    pageHandler: null,
    values: new { area = "Identity", userId = user.Id, code = code },
    protocol: Request.Scheme);

Здесь ответили: https://github.com/aspnet/Mvc/issues/8280

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...