我正在尝试创建一个只是为了学习ASP.NET c#的网站。我虽然试图从我的数据库中获取值,但我想说如果“客户”已登录,我可以显示他的地址详细信息一些文本框。与使用Select的sproc类似。有人可以帮助我或建议我在哪里可以了解如何获取客户的详细信息?或者有一种特殊的方式我应该这样做而不是使用“糟糕的编程方法”。
答案 0 :(得分:0)
建议使用内置的Membership类:
MembershipUser m = Membership.GetUser();
if (m == null)
{
// User not logged on.
}
用户ID存储在m.ProviderUserKey
中,而不是使用Entity Framwork(如果不这样,请考虑使用它。简单而方便)使用以下方法获取有关此用户的数据:
var loggedOnUser = context.Users.First(u=>u.ProviderUserKey == m.ProviderUserKey);
if (loggedOnUser == null)
{
// Shoudn't happen. If do, the user logged in for some reason is not stored in the database.
}
您可以更好地实现从MembershipUser派生的CustomMembershipProvider和CustomMembershipUser,因此您可以通过这种方式检索有关用户的所有信息:
// Get custom user (if allready logged in)
CustomMembershipUser user = Membership.GetUser() as CustomMembershipUser;