2013-03-28 32 views
6

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ụng OAuthWebSecurity.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.

+0

Câu hỏi hay. Xin lỗi tôi không có bất kỳ ý tưởng. – Knox

+0

@Knox Cảm ơn bạn, Ngài – VoidKing

Trả lời

2

Có phải điều này GitHub project help : WorldDomination.Web.Authentication ??

enter image description here

cũng là một gói MVCNancyFX NuGet mà hiện một số hệ thống dây điện tự động lên, nếu điều đó có ưa thích của bạn.

TỪ BỎ: Tôi chưa bao giờ thử điều này trong Webmatrix và sẽ không bao giờ có kế hoạch thử nó, trong đó. Điều đó nói rằng, nó vẫn có thể hoạt động! :)

+0

Cảm ơn sự giúp đỡ, nhưng tôi sẽ thành thật. Tôi không biết mình phải làm gì với điều này. Tôi nghĩ nếu tôi gõ lệnh đó vào * bất cứ thứ gì * và nhấn enter, vũ trụ sẽ tự sụp đổ. – VoidKing

+0

Tất cả nói đùa, tôi thực sự không thể nghĩ ra bất kỳ giao diện WebMatrix nào chấp nhận một lệnh như thế. Ngoài ra, tôi thường thấy rằng các giải pháp bên ngoài môi trường WebMatrix hiếm khi hoạt động trong môi trường WebMatrix. Tôi đã làm hỏng mọi thứ theo cách này trước đây. – VoidKing

+0

Trong khi câu trả lời này vẫn chưa giải quyết được vấn đề của tôi, tôi nghĩ rằng tôi phải +1 điều này, bởi vì nó rất tốt có thể là giải pháp gần nhất cho vấn đề này ra khỏi đó, cho đến nay. – VoidKing

1

Bạn đã thử gói sau chưa?

PM> Install-Package Microsoft.AspNet.WebPages.OAuth 
+0

Điều này làm việc cho tôi trong .net 4.5.2 –

-1

Cài đặt gói Microsoft.AspNet.WebPages.OAuth.

Bạn có thể cài đặt nó bằng cách sử dụng Package Manager Console hoặc trong GUI Package Manager.

Các vấn đề liên quan