Парсер URL по умолчанию не может быть нулевым, потому что вы получили бы NullReferenceException
в строке 36 в ReturnUrlParser.cs:
if (parser.IsValidReturnUrl(returnUrl))
Вставили ли вы всю трассировку стека?Вызывается ли исключение внутри метода `ParseAsync '?
Одна из возможностей состоит в том, что анализатор URL возвращает true
для URL, который он не должен обрабатывать, и падает внутри ParseAsync
, потому что онстолкнуться с чем-то неожиданным.Я заметил, что вы всегда возвращаете true
из IsValidReturnUrl
, что означает, что ваш анализатор URL будет анализировать все URL.
Вы можете попробовать переместить строку регистра:
services.AddTransient<IReturnUrlParser, MyReturnUrlParser>();
довызовите services.AddIdentityServer()
, чтобы ваш парсер был первым в коллекции парсеров: