使用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
答案 0 :(得分:3)
Guid userId = Membership.GetUser().ProviderUserKey as Guid;
将为您提供您所追求的UserId。为了简化asp.net应用程序,我通常在用户登录时坚持进入会话。
asp.net成员资格表具有每个应用程序的唯一用户名,并且由于可以在一个数据库中定义多个应用程序,因此调用Profile.GetProfile(字符串userName)也可以从不同的应用程序返回一个配置文件。这就是为什么没有GetProfile(userName),并且自己实现它是一个坏主意。