Ra khỏi hộp, System.Web.Security.Membership thực hiện một vài phương pháp tìm kiếm:Làm thế nào để thực hiện tốt nhất tìm kiếm tùy chỉnh trên một nhà cung cấp Membership
- FindUsersByEmail
- FindUsersByName
tôi đang sử dụng WSAT project from CodePlex để quản lý cơ sở dữ liệu Thành viên của tôi. Công cụ này thực hiện các thuộc tính profile bổ sung trong một lớp ProfileCommon.
Giả sử tôi có tài sản được gọi là Công ty trong hồ sơ của người dùng.
Tôi cần triển khai phương pháp tìm kiếm tùy chỉnh để tìm kiếm trên thuộc tính Công ty và tôi muốn thực hiện tất cả trong mã. Không muốn viết một thủ tục lưu sẵn (vì tất cả các thuộc tính hồ sơ được lưu trữ trong cột cơ sở dữ liệu 1 trong công cụ WSAT).
Something như thế này rõ ràng không phải là cách đúng đắn để làm điều đó, nhưng ở đây nó là chỉ cần chứng minh truy cập vào thuộc tính profile người dùng:
private MembershipUserCollection SearchByFirm(string firmName, MembershipUserCollection allRegisteredUsers)
{
MembershipUserCollection searchResults = new MembershipUserCollection();
foreach (MembershipUser user in allRegisteredUsers)
{
ProfileCommon profile = Profile.GetProfile(user.UserName);
if (profile.Firm.ToLowerInvariant().Contains(firmName.ToLowerInvariant()))
{
searchResults.Add(user);
}
}
return searchResults;
}
Tôi có thể tắt chức năng này vào một vài tiện ích LINQ?
Nhận thấy MembershipUserCollection không thực hiện IEnumerable hoặc, làm phức tạp mọi thứ một chút –