2009-07-23 26 views
5

Tôi đang làm việc trên một ứng dụng có nhiều ứng dụng khách - Máy tính để bàn, Thiết bị di động, Cổng Web. Chúng tôi đang chuyển sang một loại kiến ​​trúc SOA và sẽ sử dụng WCF.Cách tốt nhất để sử dụng và bảo vệ WCF trên Compact Framework?

Câu chuyện WCF là tuyệt vời khi nói đến việc sử dụng bảo mật chuyển tiếp/tin nhắn netTcp + xác thực Windows (hoặc thậm chí UsernameToken và nhà cung cấp Tên người dùng) trong Desktop và Web Portal.

Nơi hoàn toàn bị hỏng là ở phía khung công tác nhỏ gọn ... tập con của WCF mà nó hỗ trợ rất hạn chế. Tôi đã từ chức chỉ đơn giản bằng cách sử dụng basicHttp + Username/Password trong tiêu đề trên SSL, nhưng có vẻ như bạn không thể thêm tiêu đề khi trên ngăn xếp khung gọn nhẹ (không có OperationContextScope) - để cho tôi bao gồm tên người dùng/mật khẩu làm thông số cho MỌI Phương thức hoạt động SINGLE trong dịch vụ.

Hãy cho tôi biết tôi đã sai và có cách tốt hơn.

+0

Tôi chưa thử điều này, nhưng bạn có thể sử dụng Xác thực cơ bản qua HTTPS không? –

+0

Tôi chưa tìm được cách để thực hiện điều đó thông qua WCF stack trên CF - tôi nghĩ đây là lý do tại sao một số người chọn xử lý dịch vụ WCF như một dịch vụ web truyền thống (Thêm Web Reference ...) trên khung công tác nhỏ gọn. –

Trả lời

1

Đặt cược tốt nhất của bạn sẽ là để lộ điểm cuối WCF phù hợp với các tiêu chuẩn WS-Security.

Sau đó, bạn có thể sử dụng các tiêu chuẩn đó để bảo mật dựa trên tin nhắn (rất có thể sử dụng X.509). Đây là liên kết MSDN để bắt đầu:

Messaging in the .NET Compact Framework

1

Một giải pháp thay thế là để vượt qua một vé (đọc: guid).

Máy khách đăng nhập (gửi tên người dùng và mật khẩu). Một vé được tạo ngẫu nhiên được tạo ra (guid một lần nữa), được lưu trữ trên máy chủ và được gửi lại cho máy khách. Vé này sau đó được chuyển qua lại thay vì tên người dùng và mật khẩu.

Tất nhiên, tất cả điều đó là giả sử bạn không chỉ muốn sử dụng trạng thái phiên.

Nhưng nói cách khác: Tôi đã có cùng một vấn đề mà bạn đã gặp phải. Nó hút. Đây là cách tôi nhận được xung quanh nó một chút để nó có thể sử dụng được.

Dù sao, một tham chiếu tốt khác là WCF Guidance for Mobile.

+0

Tôi cũng đang suy nghĩ về việc quay trở lại một cái gì đó như thế, có thể đi với một cái gì đó có thể được tính từ mật khẩu (hoặc mã băm NT của mật khẩu) để nó có thể là không trạng thái. Tất cả an toàn qua SSL tất nhiên. –

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