2008-11-27 12 views
9

Tôi có yêu cầu dự án mà tôi cần xác thực đối với ActiveDirectory trong một ứng dụng WPF từ xa/bị ngắt kết nối.Xác thực và GetRoles của người dùng ActiveDirectory trong ứng dụng WPF bị ngắt kết nối thông qua MembershipProvider

Có thể có một số cách để cố gắng thực hiện việc này, nhưng cách tiếp cận nào tốt nhất khi sử dụng MembershipProvider của ActiveDirectory?

tôi cần phải:

  1. Authenticate mà người dùng tồn tại.
  2. có được nhóm và vai trò của người dùng AD.

Điều này cần xảy ra từ một vị trí ở xa, bên ngoài mạng Active Directory nằm trên đó.

Trả lời

15

Từ trong ứng dụng WinForms hoặc WPF, bạn có thể tận dụng "Client Application Services" (cảm ơn MS vì tên rất chung chung, tìm kiếm trợ giúp giờ đây rất đau!).

Điều này cho phép bạn kết nối với dịch vụ WCF có thể xác thực thông tin đăng nhập. Các liên kết ở trên có một hướng dẫn cho thấy nó dễ dàng như thế nào để có được tất cả làm việc, một khi bạn có một ứng dụng làm việc, bạn có thể sửa đổi cấu hình của bạn để trỏ đến một MembershipProvider và/hoặc RoleProvider khác nhau.

Cần lưu ý rằng giải pháp out-of-the-box bao gồm MembershipProvider có tên ActiveDirectoryMembershipProvider, nhưng không có RoleProvider cho Active Directory.

Nếu bạn yêu cầu khả năng lấy Vai trò (hoặc Nhóm) và bạn đang làm việc với .NET 4.0 thì bạn có thể tận dụng lợi thế của API Active Directory mới được thêm vào giúp mọi thứ trở nên dễ dàng hơn, cụ thể là System.DirectoryServices.AccountManagement. Đối với cơ bản nhất của thành viên và các dịch vụ Vai trò bạn sẽ muốn có những điều sau đây để tạo ra MembershipProvider và cơ bản của riêng bạn RoleProvider:

Bạn có thể triển khai ít hoặc nhiều API khi cần, bạn nên tìm mọi thứ bạn cần trong không gian tên AccountManagement mới để thực hiện việc này.