我希望使用略微修改的ASP.Net成员资格提供程序来处理网站中的标准用户帐户创建/身份验证/等。我们需要迁移大量遗留数据,以便与现有用户保存的信息(如订单历史记录,心愿单等)保持连续性。 [注意:无论如何我们必须迁移,所以这不是我们迁移数据的原因]
我想知道将这些额外数据加入asp.net成员资格表是一种明智的方法。我可以在用户表上使用两个唯一的密钥 - UserId或电子邮件 - 我们将用它作为用户名的代理。
我的问题是,在我的表格中用于存储订单,愿望清单等的更好的访问模式(以及外键)是什么?
在HttpContext中,可以使用包含“用户名”的用户对象,我们的电子邮件地址, 但是没有可用的userId Guid。
我看到3个选项:
不可行
从数据库角度或从应用程序效率角度对最佳方法的任何想法?
答案 0 :(得分:3)
您可以获得UserId:
MembershipUser myObject = Membership.GetUser();
string UserID = myObject.ProviderUserKey.ToString();
或者(请检查)
string userId = Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString();