2017-01-24 39 views
5

Utworzono nową aplikację .NET Core MVC w Visual Studio 2017 i włączono uwierzytelnianie za pomocą wielu dzierżawców.
Ukończyłem konfigurację (ClientId, Authority, itp.), Ale podczas debugowania aplikacji występuje wyjątek w pliku Startup.cs, w szczególności w metodzie app.useOpenIdConnectAuthentication.Startup.cs - Ścieżka w "wartości" musi rozpoczynać się od "/"

Wyjątkiem Podano

System.ArgumentException: Ścieżka w 'wartości' należy rozpocząć '/'.

Jestem trochę początkującym, jeśli chodzi o C# i .NET Core, więc nie jestem pewien, czy brakuje mi czegoś oczywistego. Głównym punktem spornym jest to, do czego odnosi się debugger z parametrem "value", ponieważ nie widzę żadnej wzmianki o nim w kodzie. Nie ma żadnych zmian poza domyślnym szablonem wygenerowanym przez studio graficzne, innym niż dodanie elementów konfiguracji do appsettings.json.

+2

Byłoby pomocne, gdyby w pytaniu został podany kod startup.cs. "wartość" to nazwa parametru *, a nie nazwa czegoś z Twojego kodu. – Amy

+1

Czy masz coś takiego jak LoginPath lub podobna ścieżka skonfigurowana w auth config? Ścieżki/trasy powinny zaczynać się od '/' – Developer

+0

Prawdopodobnie nieprawidłowy adres URL w jednej z właściwości OpenIdConnectAuthenticationOptions. Jak mówi #Amy, musisz opublikować kod. – RaoulRubin

Odpowiedz

2

Ponieważ nie ma kodu w pytaniu, postaram się udzielić ogólnej odpowiedzi, jak to możliwe.
Powyższy wyjątek pojawia się podczas korzystania z tego przeciążenia PathString.FromUriComponent(string) a łańcuch nie rozpoczyna się od znaku /

tak, na przykład, następujący kod wygeneruje wyjątek:

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

i naprawić poprzedni wyjątek można napisać tak:

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

i oczywiście będzie to ścieżka względna.

W przypadku, gdy chciał napisać ścieżkę bezwzględną (i nie uruchomić łańcuch z /), trzeba użyć innego przeciążenie tej metody, która bierze Uri zamiast string

tutaj jest przykładem

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