是否可以使用其成员资格用户ID检索用户个人资料?

时间:2012-02-19 12:42:30

标签: asp.net vb.net profile membership provider

使用Asp.net会员资格&个人资料提供者:

我是否可以使用其会员用户ID而不是用户名来检索用户个人资料?

我问的原因是因为如果我有UserID而不是Username,我将不得不编写以下两行代码

    Dim MembershipUser As MembershipUser = Membership.GetUser("UserID")
    Dim Profile As Profile = Profile.GetProfile(MembershipUser.UserName)

而不是:

Dim Profile As Profile = Profile.GetProfile(“UserID”)

这会影响性能吗?我的设计不好吗?我错过了什么吗?

请注意:我知道我可以使用以下代码检索当前登录的用户:HttpContext.Current.User.Identity.Name

1 个答案:

答案 0 :(得分:3)

Guid userId = Membership.GetUser().ProviderUserKey as Guid; 

将为您提供您所追求的UserId。为了简化asp.net应用程序,我通常在用户登录时坚持进入会话。

asp.net成员资格表具有每个应用程序的唯一用户名,并且由于可以在一个数据库中定义多个应用程序,因此调用Profile.GetProfile(字符串userName)也可以从不同的应用程序返回一个配置文件。这就是为什么没有GetProfile(userName),并且自己实现它是一个坏主意。