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

Har*_*ris 5 vb.net membership asp.net provider profile

使用Asp.net会员和个人资料提供商:

我能够使用其Membership UserID而不是其用户名来检索用户配置文件吗?

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

    Dim MembershipUser As MembershipUser = Membership.GetUser("UserID")
    Dim Profile As Profile = Profile.GetProfile(MembershipUser.UserName)
Run Code Online (Sandbox Code Playgroud)

代替:

Dim Profile As Profile = Profile.GetProfile("UserID")

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

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

b0r*_*0rg 3

Guid userId = Membership.GetUser().ProviderUserKey as Guid; 
Run Code Online (Sandbox Code Playgroud)

会给你你想要的 UserId。为了在 ASP.NET 应用程序中简单起见,我通常会在用户登录时进入会话。

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

  • 我想要做的是使用 MembershipUserID 而不是用户名检索用户(不是登录用户)的配置文件。 (2认同)