Nếu tôi lạm dụng hoặc nhầm lẫn các điều khoản OpenID và OAuth, tôi xin lỗi, tôi vẫn còn mới đối với toàn bộ quá trình đăng nhập phi tập trung này.Làm cách nào để bắt đầu sử dụng OpenID/OAuth với trang web WebMatrix của tôi?
Tôi đã cố gắng hàng ngày để có được trang web của mình (được xây dựng trong WebMatrix) để nhận dạng thông tin đăng nhập Google. Vấn đề là tôi cần dòng mã này (từ những gì tôi đã nghiên cứu) trong _AppStart.cshtml
tập tin của tôi:
OAuthWebSecurity.RegisterGoogleClient();
Nhưng khi tôi cố gắng chạy trang web này sau khi tuyên bố này được đặt ra, tôi chỉ đơn giản nhận được một lỗi máy chủ nói rằng OAuthWebSecurity.RegisterGoogleClient();
không tồn tại trong ngữ cảnh hiện tại. Tôi nghĩ rằng tôi có thể cần thư viện OAuth, một trình trợ giúp khác hoặc một số gói khác, nhưng gói duy nhất có liên quan tôi thấy (Thư viện OAuth Microsoft WebPages 2.0.20710.0) Tôi không thể nhận được, bởi vì WebMatrix doesn ' t hỗ trợ phiên bản của NuGet nó nói rằng tôi cần (2.0).
Tôi chưa bao giờ sử dụng phương pháp này để đăng nhập trước và tôi muốn tìm hiểu cách xây dựng chức năng này cho khách hàng của mình. Những gì tôi không muốn làm là mở mẫu khởi động và sao chép các tệp của tôi qua. Tôi gặp vấn đề khi sử dụng mã mà tôi không hiểu. Tôi cảm thấy rằng đây sẽ là một thói quen khủng khiếp đối với tôi khi bước vào (phải mất một số bản thân thuyết phục trước khi tôi thậm chí sẽ sử dụng các trình cắm thêm jQuery). Nó cũng có thể đề cập đến việc tôi sẽ không sử dụng bất kỳ dịch vụ bên thứ ba nào khác cho thông tin đăng nhập này. Chúng tôi sử dụng gmail cho tài khoản email công ty của nhân viên của chúng tôi vì vậy tôi cần chỉ Google thông tin đăng nhập cho giải pháp này.
Những điều tôi đã cố gắng:
- Googling cho các kịch bản khác như tôi. Thất bại vì không có kết quả tìm kiếm liên quan được tìm thấy (ví dụ, tôi không thể tìm thấy kết quả phù hợp với kịch bản của tôi)
- Đang tìm kiếm các phiên bản trước của thư viện Microsoft trang web OAuth 2.0.20710.0 gói. Không vì tìm kiếm của tôi không trả về các gói như vậy.
- Sử dụng
OAuthWebSecurity.RegisterOpenIDClient(BuiltInOpenIDClient.Google);
thay vìOAuthWebSecurity.RegisterGoogleClient();
Thất bại vì lý do tương tự như khi sử dụngOAuthWebSecurity.RegisterGoogleClient();
- Thăm Quản trị trang web và tải về thư viện OAuth. Thất bại vì NuGet cần một bản cập nhật
- Cập nhật NuGet Thất bại vì những gì được đề cập ở đây (rõ ràng, một lỗi được biết đến với WebMatrix):http://forums.asp.net/t/1836913.aspx/1?Error+updating+DotNetOpenAuth+updates+with+NuGet+Gallery
- Mở cửa trang web Template Starter, mà đã có OAuth xây dựng trong và chức năng. Không được dạy tôi tại sao trang web này nhận ra
OAuthWebSecurity.RegisterGoogleClient()
và tôi không, vì không có cách rõ ràng (tôi biết) để nói những gì pacakages, cập nhật và/hoặc phiên bản của phần mềm của bên thứ ba có thể khác nhau. - Tạo trang web mới bắt đầu và sao chép bất kỳ tệp bị thiếu dựa trên OAuth nào từ thư mục * "App_Data" * và "bin". Không có thay đổi hành vi nào được quan sát thấy.
----------------------------------------- CẬP NHẬT ----------------------------------------
Cho đến nay, cho đến nay , giải pháp tốt nhất cho vấn đề này, ít nhất là đối với tôi, là chỉ sử dụng mẫu "Starter Site" trong WebMatrix, cho dù tôi có thích hay không. Tuy nhiên, một trong những lo ngại lớn nhất của tôi về việc này là có quá nhiều tệp không liên quan đến việc tôi không chắc chắn những gì tôi có thể và không thể xóa để giữ cho trang web luôn sạch sẽ trong khi vẫn rời lớp học OAuthWebSecurity()
hoàn toàn có thể truy cập và chức năng. Tuy nhiên, tôi chỉ giữ các thư mục "bin" và "App_Data" (bao gồm tất cả nội dung của chúng) từ mẫu "Starter Site" và xóa mọi thứ khác (bao gồm tệp web.config) trước khi di chuyển tệp của tôi lên, và điều này đã xuất hiện để làm việc rất tốt cho tôi, cho đến nay.
Sử dụng các bước được đề cập ở trên, tôi đã giữ trang web của mình sạch mã không cần thiết, trong khi vẫn có quyền truy cập vào lớp OAuthWebSecurity()
.
Trong tương lai (tôi tưởng tượng khi WebMatrix 3 được phát hành), lỗi này có thể được sửa và cài đặt trang quản trị viên OAuth đơn giản sẽ không yêu cầu phiên bản NuGet mà WebMatrix không hỗ trợ, nhưng cho đến lúc này, đã là câu trả lời tốt nhất cho tôi.
Câu hỏi hay. Xin lỗi tôi không có bất kỳ ý tưởng. – Knox
@Knox Cảm ơn bạn, Ngài – VoidKing