2011-11-05 16 views
5

Tôi đang làm việc trên một giải pháp mà tôi có dự án WPF đang sử dụng WCF DataService nằm trong dự án ASP .NET khác để truy cập dữ liệu.
Tôi cần cung cấp mức độ bảo mật để đảm bảo rằng chỉ những người dùng được xác thực mới có thể truy cập dịch vụ. Sau khi lướt net tôi đã phá vỡ đầu của tôi cố gắng để thực hiện điều đó. Cách thích hợp để thực hiện điều đó là gì?Bảo mật dữ liệu WCF trong ứng dụng WPF

+0

Tạo mã thông báo người dùng có thể hữu ích .. Câu hỏi của bạn thú vị :) –

Trả lời

2

Tôi đã làm điều này trong quá khứ, nơi phương pháp Login của WCF sẽ tạo đối tượng người dùng, gán đối tượng người dùng một Mã thông báo (trong trường hợp của tôi, đó là GUID) và lưu trữ nội bộ trên máy chủ WCF trong danh sách AuthenticatedUsers .

Bất kỳ cuộc gọi WCF nào khác đều yêu cầu mã thông báo làm thông số. Nó sẽ kiểm tra xem người dùng có tồn tại trong danh sách AuthenticatedUsers bằng mã thông báo đó hay không và sẽ trả lại lỗi nếu không có Người dùng nào có mã thông báo đó tồn tại. Một lợi ích bổ sung là tôi sẽ luôn luôn biết ai đã thực hiện cuộc gọi WCF mà không cần họ để vượt qua trong một Id người dùng.

Tôi cũng đã lưu trữ Thời gian hẹn giờ LastActivity với các đối tượng Người dùng trên máy chủ. Mỗi cuộc gọi WCF sẽ làm mới giá trị này và cung cấp danh sách AuthenticatedUsers trên máy chủ WCF có ít nhất một giá trị, Bộ hẹn giờ chạy trên máy chủ sẽ kiểm tra giá trị LastActivity của AuthenticatedUsers và xóa người dùng nếu họ không hoạt động trong hơn 20 phút.