获取与当前用户相关的数据

时间:2014-03-23 21:07:58

标签: .net asp.net-mvc entity-framework

我有一个愿望清单应用程序。我希望当用户进入愿望清单页面时,所显示的愿望清单是他自己的。我正在使用SimpleMembershipProvider,所以我在AspNetUsers数据库表中添加了一些属性,例如Wishlist字段,它是wishlist的外键。我如何获得当前用户的愿望清单?我甚至在Wishlist对象中创建了一个User_Id外键字段。

1 个答案:

答案 0 :(得分:1)

您应该可以通过WebSecurity.CurrentUserId访问用户ID。

您可以将User实体映射到您的用户表,包括对Wishlist表的引用。或者,如果您首先使用模型,请让EF为您生成User实体!

然后,您可以使用WebSecurity.CurrentUserId从数据库中加载当前的User实体。

例如:

var user = _database.Users.FirstOrDefault(u => u.Id == WebSecurity.CurrentUserId);
var wishlist = user.Wishlist;

修改

如果不使用WebSecurity,您可以使用以下方式获取用户名:

var username Membership.GetUser().UserName;

然后,您可以访问User实体:

var user = _database.Users.FirstOrDefault(u => u.Username == username);
var wishlist = user.Wishlist;