Tôi hiện đang cố gắng sử dụng Luồng tác nhân người dùng OAuth 2.0 với ứng dụng C# của khách hàng và tôi đang gặp phải một số nhầm lẫn liên quan đến URI chuyển hướng.Luồng tác nhân người dùng OAuth với C# Desktop App
Vì tôi đang làm việc với ứng dụng khách hàng, tôi không thể cung cấp URL chuyển hướng chuẩn cho máy chủ web. Tuy nhiên, theo những người tôi đang cố gắng xác thực với (Salesforce, trong trường hợp này), Luồng tác nhân người dùng là chính xác để sử dụng cho ứng dụng khách.
Câu hỏi của tôi là, tôi có thể làm gì để nhận mã thông báo truy cập trong tình huống này? Rõ ràng tôi có thể tạo một "tài nguyên cục bộ có thể truy cập được cho khách hàng", nhưng tôi không quen thuộc với các cơ chế đằng sau điều này, và tôi không thể tìm thấy bất kỳ tài nguyên nào về chủ đề (một phần vì tôi không biết phải tìm kiếm gì).
Bất kỳ con trỏ nào về nơi tôi nên bắt đầu tìm kiếm sẽ được đánh giá cao.
Edit: Một số đào hơn đã tiết lộ câu hỏi stackoverflow sau:
How do I develop against OAuth locally?
tôi đang làm một số chi tiết điều tra với những gì họ đề nghị, nhưng bất cứ đề nghị khác sẽ là tuyệt vời là tốt.
Edit: Một số phải tìm kiếm nhiều tiết lộ bài viết này:
http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html
Tuy nhiên cảm thấy như mình đang chọc xung quanh trong bóng tối mà không có một sự hiểu biết về bức tranh lớn hơn, nhưng tôi tin rằng tôi cần phải thiết lập một dịch vụ web cục bộ bằng cách sử dụng localhost và trỏ URI chuyển hướng của tôi ở đó. Sau đó tôi sẽ sử dụng dịch vụ web của tôi để gỡ bỏ phản hồi từ máy chủ OAuth và yêu cầu ứng dụng của tôi phản hồi một cách thích hợp. Các bản cập nhật khác sẽ đến.
Ooookay. Vì vậy, từ những gì tôi đã có thể thu thập, tôi cần phải thiết lập một dịch vụ web cục bộ để cung cấp như gọi lại cho OAuth. Tôi cần phải lắng nghe bản thân dịch vụ web nói trên và bắt được cuộc gọi lại để chuyển nó tới ứng dụng của tôi. Tuy nhiên, dịch vụ web ASP.NET mặc định được cung cấp bởi VS2010 không hỗ trợ các tham số URL, chỉ các cuộc gọi API, vì vậy tôi dường như cần sử dụng bộ khởi động WCF Rest starter.
Tôi hoàn toàn xa lạ với tất cả những điều này, vì vậy mọi mẹo sẽ là một ơn trời tại thời điểm này. Nói chung, tôi nghĩ tôi đã thiết lập một dịch vụ WCF Rest cục bộ, cung cấp URI cục bộ cho OAuth làm gọi lại, và sau đó bắt URL gọi lại bằng dịch vụ Rest. Sau đó, tôi phân tích cú pháp URL và trích xuất mã thông báo truy cập. Tại thời điểm này, ứng dụng của tôi có yêu cầu mã thông báo truy cập hay dịch vụ web của tôi có thể cung cấp mã thông báo cho ứng dụng của tôi không? Tức là, vị trí kiểm soát nên ở đâu?
Đây sẽ là một lựa chọn. Nhưng hãy cẩn thận: người dùng có thể sử dụng một số thủ thuật trên WebBrowser của bạn như đi tiếp và lùi trong lịch sử trình duyệt, làm mới trang, hết thời gian chờ, mất mạng. BẠN sẽ phải xử lý tất cả các mã lỗi HTTP + tất cả các thủ thuật khó chịu của trình duyệt được nhúng. Chúc may mắn :) –
Plus xem xét giao diện người dùng của ứng dụng của bạn, có thể, khác với giao diện được Salesforce đề xuất - và bạn không thể thay đổi mặc định của họ vì bạn không có quyền kiểm soát nó. –
Ugh, bạn nói đúng. Tôi sẽ phải xem xét bảo mật trình duyệt nhúng tiếp theo. Tuy nhiên, theo như giao diện người dùng, ứng dụng của tôi là một quá trình nền tạo ra cửa sổ bật lên trên các sự kiện nhất định, vì vậy xác thực chỉ được yêu cầu một lần cho mỗi lần khởi chạy ứng dụng (thường là một lần mỗi ngày, vào buổi sáng). Mặc dù vậy, nhờ các mẹo này, tôi đã quên mất các lỗ hổng bảo mật có khả năng được mở bằng một cá thể IE được nhúng. – sichinumi