2017-01-24 14 views
5

Tôi đã tạo một ứng dụng .NET Core MVC mới trong Visual Studio 2017 và cho phép xác thực nhiều người thuê.
Tôi đã hoàn thành cấu hình (ClientId, Authority, v.v.) nhưng khi tôi gỡ lỗi ứng dụng, có một ngoại lệ trong Startup.cs, cụ thể là phương thức app.useOpenIdConnectAuthentication.Startup.cs - Đường dẫn trong 'value' phải bắt đầu bằng '/'

Trường hợp ngoại lệ nhất định là

System.ArgumentException: Đường dẫn trong 'giá trị' phải bắt đầu bằng '/'.

Tôi là một người mới khi nói đến C# và .NET Core, vì vậy tôi không chắc liệu mình có thiếu điều gì hiển nhiên hay không. Điểm gắn bó chính là những gì trình gỡ rối đang đề cập đến với tham số 'giá trị' vì tôi không thể thấy bất kỳ đề cập nào về nó trong mã. Không có thay đổi nào ngoài mẫu mặc định được tạo bởi studio trực quan, ngoài việc thêm các mục cấu hình vào appsettings.json.

+2

Sẽ rất hữu ích nếu bạn bao gồm mã startup.cs của mình trong câu hỏi. 'value' là tên của tham số * *, không phải tên của một cái gì đó từ mã của bạn. – Amy

+1

Bạn có một cái gì đó như LoginPath hoặc đường dẫn tương tự được cấu hình trong cấu hình auth? Các đường dẫn/tuyến đường đó phải bắt đầu bằng '/' – Developer

+0

Có thể là một URL không hợp lệ trong một trong các thuộc tính OpenIdConnectAuthenticationOptions. Như #Amy nói, bạn cần đăng mã. – RaoulRubin

Trả lời

2

Vì không có mã trong câu hỏi nên tôi sẽ cố gắng trả lời chung nhất có thể.
Trường hợp ngoại lệ trước xuất hiện khi bạn sử dụng quá tải này PathString.FromUriComponent(string) và chuỗi không bắt đầu với nhân vật /

như vậy, ví dụ, đoạn mã sau sẽ ném một ngoại lệ:

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

và để sửa chữa ngoại lệ trước đây bạn có thể viết nó như thế này

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

và tất nhiên, đây sẽ là một đường dẫn tương đối.

Trong trường hợp bạn muốn viết một đường dẫn tuyệt đối, (và không bắt đầu chuỗi của bạn với /), sau đó bạn phải sử dụng một quá tải của phương pháp này mà mất Uri thay vì string

đây là một ví dụ

PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/")) 
Các vấn đề liên quan