2017-01-24 5 views
5

Ich habe eine neue .NET Core MVC-Anwendung in Visual Studio 2017 erstellt und Multi-Tenant-Authentifizierung aktiviert.
Ich habe die Konfiguration abgeschlossen (ClientId, Authority, etc), aber wenn ich die Anwendung debuggen gibt es eine Ausnahme in der Startup.cs, speziell die app.useOpenIdConnectAuthentication Methode.Startup.cs - Der Pfad in 'Wert' muss mit '/' beginnen

Die angegebene Ausnahme ist

System.ArgumentException: Der Pfad im 'Wert' muss mit '/' beginnen.

Ich bin ein bisschen wie ein Neuling, wenn es darum geht, C# und .NET-Core, also bin ich nicht sicher, ob ich etwas offensichtlich fehlt bin. Der wichtigste Knackpunkt ist, worauf der Debugger mit dem Parameter Wert hinweist, da ich im Code keine Erwähnung davon finden kann. Es gibt keine Änderungen, die über die von Visual Studio generierte Standardvorlage hinausgehen, außer dass die Konfigurationselemente zur Appsettings.json hinzugefügt werden.

+2

Es wäre hilfreich, wenn Sie Ihren startup.cs-Code in die Frage einbeziehen. 'Wert' ist der Name des * Parameters *, nicht der Name von etwas aus Ihrem Code. – Amy

+1

Haben Sie etwas wie LoginPath oder einen ähnlichen Pfad in Auth Config konfiguriert? Diese Pfade/Routen sollten mit '/' – Developer

+0

beginnen. Wahrscheinlich eine ungültige URL in einer der OpenIdConnectAuthenticationOptions-Eigenschaften. Wie #Amy sagt, müssen Sie den Code veröffentlichen. – RaoulRubin

Antwort

2

Da es in der Frage keinen Code gibt, werde ich versuchen, eine allgemeine Antwort wie möglich zu geben.
Die bisherige Ausnahme angezeigt, wenn Sie diese Überladung verwenden PathString.FromUriComponent(string) und die Zeichenfolge beginnt nicht mit dem / Charakter

so zum Beispiel wird der folgende Code eine Ausnahme:

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

und zu beheben vorherige Ausnahme können Sie es so schreiben

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

und natürlich wird dies ein relativer Pfad sein.

Falls Sie wollten einen absoluten Pfad schreiben (und nicht die Zeichenfolge mit / beginnen), dann müssen Sie eine weitere Überlastung dieser Methode verwenden, die Uri nimmt statt string

hier ist ein Beispiel

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