2017-01-24 4 views
5

Я создал новое приложение .NET Core MVC в Visual Studio 2017 и включил многоуровневую аутентификацию.
Я завершил настройку (ClientId, Authority и т. Д.), Но когда я отлаживаю приложение, в Startup.cs есть исключение, в частности метод app.useOpenIdConnectAuthentication.Startup.cs - путь в 'value' должен начинаться с '/'

Исключением является данный

System.ArgumentException: Путь в 'значение' должна начинаться с '/'.

Я немного новичок, когда дело доходит до C# и .NET Core, поэтому я не уверен, что мне не хватает чего-то очевидного. Основная точка привязки - это то, что отладчик ссылается на параметр «значение», поскольку я не вижу никакого упоминания об этом в коде. Вне шаблона по умолчанию, созданного визуальной студией, нет изменений, кроме добавления элементов конфигурации в appsettings.json.

+2

Было бы полезно, если вы включили код startup.cs в вопрос. 'value' - это имя параметра *, а не имя чего-то из вашего кода. – Amy

+1

У вас есть что-то вроде LoginPath или аналогичного пути, настроенного в auth config? Эти пути/маршрут должны начинаться с '/' – Developer

+0

Вероятно, неверный URL-адрес в одном из свойств OpenIdConnectAuthenticationOptions. Как говорит #Amy, вам нужно опубликовать код. – RaoulRubin

ответ

2

Как нет кода в вопросе, поэтому я постараюсь сделать общий ответ, насколько это возможно.
предыдущее исключение появляется, когда вы используете эту перегрузку PathString.FromUriComponent(string) и строка не начинается с / характера

так, например, следующий код будет сгенерировано исключение:

PathString.FromUriComponent("controllerName/actionName"); // throw exception 

и зафиксировать предыдущее исключение вы можете написать так:

PathString.FromUriComponent("/controllerName/actionName"); 

и, конечно же, это будет относительный путь.

В случае, если вы хотите написать абсолютный путь (и не начать строку с /), то вы должны использовать другую перегрузку этого метода, который принимает Uri вместо string

вот пример

PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/")) 

 Смежные вопросы

  • Нет связанных вопросов^_^