2012-12-19 33 views
7

Tôi đang viết một ứng dụng web đơn giản trong MVC 4 và tôi muốn OAuth with Trello để tôi có thể yêu cầu người dùng đăng nhập bằng các chi tiết trello của họ và sau đó xem một số thẻ của họ .OAuth với nhà cung cấp tùy chỉnh oauth trong MVC 4

Bất kỳ ai cũng có thể cung cấp thông tin về cách tạo nhà cung cấp tùy chỉnh oauth để hỗ trợ những người không phải là nhà cung cấp hộp thư không? Từ những gì tôi có thể thấy, tôi nghĩ rằng Tôi cần tạo nhà cung cấp Oauth tùy chỉnh (lớp con IAuthenticationClient và sử dụng điều đó) - có đúng không?

+0

Bạn đã bao giờ tìm thấy giải pháp để thêm nhà cung cấp tùy chỉnh chưa? – Billdr

Trả lời

11

OK, tôi đã dành 11 giờ kể từ khi nhận xét của tôi viết một lớp oAuth tùy chỉnh cho SO. Ngày mai tôi có thể làm một trong những lực lượng bán hàng. Tôi không vui.

Dưới đây là những gì tôi đã làm:

  1. Tạo một lớp DataContract cho Json dự kiến ​​của bạn/Xml. Tôi đã đi trước và triển khai mọi thứ mà SO trả về, nhưng nếu bạn chỉ đang thực hiện ủy quyền, bạn có thể cắt nó xuống ID và DisplayName.

  2. Tạo lớp mở rộng OAuth2Client từ DotNetOpenAuth.AspNet.Clients. Sử dụng các ví dụ DotNetOpenAuth GitHub page. Đây là bước dài nhất và đau đớn nhất, đặc biệt là nếu serialization json của bạn bị gỉ.

  3. Mở /App_Start/AuthConfig.cs và nhập OAuthWebSecurity.RegisterClient(new YourClass(Your, Initalization, Params), "The Name You Want to Show Up On Your oAuth Login Button", ExtraDataIfYouNeedIt; ở đâu đó trong phần RegisterAuth(). Tôi chưa thiết lập thông số ExtraData, nhưng tôi không cần nó trong trường hợp của mình. Hy vọng rằng bạn sẽ không cần nó trong của bạn.

Chỉnh sửa: Cập nhật liên kết github.

+1

'ExtraData' chỉ là một đối tượng' IDictionary'; bạn có thể sử dụng nó cho bất cứ điều gì bạn muốn. Tôi đã sử dụng nó để ràng buộc một số lớp CSS mà tôi muốn truy cập trong một khung nhìn từng phần khi tôi liệt kê các nhà cung cấp có sẵn. Làm tốt lắm, BTW. –

+1

Rực rỡ, cảm ơn. Tôi đã không có cơ hội để làm điều này bởi vì tôi đã được chuyển sang các vấn đề khác, nhưng tôi có ý định nhìn vào nó đôi khi sớm, vì vậy tôi sẽ xem xét những gì bạn đã làm và lấy lại cho bạn! –

+2

Chủ đề cũ, nhưng lưu ý rằng trang DotNetOpenAuth đã chuyển đến: https://github.com/DotNetOpenAuth/DotNetOpenAuth – Joe

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