0

我正在尝试创建一个站点来学习 ASP.NET c#。虽然试图从我的数据库中获取值,但我被卡住了,我想说如果“客户”已登录,我可以在一些文本框中显示他的地址详细信息。类似于使用 Select 的存储过程。有人可以帮助我或推荐我在哪里可以学习如何获取登录的客户的详细信息吗?或者是否有一种特殊的方式我应该这样做而不是使用“糟糕的编程方法”。

4

1 回答 1

0

建议使用内置的 Membership 类:

MembershipUser m = Membership.GetUser();

if (m == null)
{
   // User not logged on.
}

存储在 中的用户 ID m.ProviderUserKey,如果您使用的是实体框架(如果不使用,请考虑使用它。它简单方便)使用以下方法获取有关此用户的数据:

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;
于 2012-10-27T23:36:29.070 回答