如何从成员资格提供程序获取用户/配置文件列表?

4

我正在使用这个会员提供程序。我在获取用户列表和个人资料(名字,姓氏,头衔等等)方面遇到了困难。

我知道有一个方法可以使用Membership.GetAllUsers(),但我不知道如何将其与我存储在Profile Provider中的名字和姓氏结合起来使用。

谢谢

2个回答

5

Membership.GetAllUsers() 返回一个 MembershipUserCollection,您可以使用它来访问单个的 MembershipUser。例如:

MembershipUserCollection users = Membership.GetAllUsers();
string email = users["some_username"].Email;

你也可以以类似的方式检索ProfileInfo:
ProfileInfoCollection profiles = ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All);
DateTime lastActivity = profiles["some_username"].LastActivityDate;

然而,默认情况下没有 FirstName 和 LastName 属性,除非你在配置文件提供程序中手动指定了它们。

查看 MembershipUser 类ProfileInfo 类 以获取更多详细信息。如果您还没有实现,请参考 SqlProfileProvider 类 作为配置文件提供程序的示例。


4
GetAllProfiles方法所返回的对象类型是ProfileInfo,因此它们不会暴露问题所要求的自定义个人资料字段,例如FirstName、LastName等。 - Fernando Neira

2

首先,当您创建用户时,请使用以下方式创建具有相同用户名的配置文件:

// Create an empty Profile for the new User
ProfileCommon p = (ProfileCommon) ProfileCommon.Create("username", true);

下次检索它时,请使用以下方法..
// Retrieve a particular profile
ProfileCommon userProfile = Profile.GetProfile("username");

感谢您的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接