.net 获取相对于当前用户的数据

.net 获取相对于当前用户的数据,.net,asp.net-mvc,entity-framework,.net,Asp.net Mvc,Entity Framework,我有一个愿望列表应用程序。我希望当用户进入愿望列表页面时,所显示的愿望列表是他自己的。我正在使用SimpleMembershipProvider,因此我向AspNetUsers DB表添加了一些属性,例如Wishlist字段,它是Wishlist的外键。如何获取当前用户的愿望列表?我甚至在Wishlist对象中创建了一个用户Id外键字段。您应该可以通过WebSecurity.CurrentUserId访问用户Id 您可以将用户实体映射到用户表,包括对愿望列表表的引用。或者,如果您首先使用模型,请

我有一个愿望列表应用程序。我希望当用户进入愿望列表页面时,所显示的愿望列表是他自己的。我正在使用SimpleMembershipProvider,因此我向AspNetUsers DB表添加了一些属性,例如Wishlist字段,它是Wishlist的外键。如何获取当前用户的愿望列表?我甚至在Wishlist对象中创建了一个用户Id外键字段。

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

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

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

例如:

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

编辑

如果未使用
WebSecurity
,则可以使用以下方法获取用户名:

var username Membership.GetUser().username

然后您可以访问您的
用户
实体:

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

我正在使用添加了自定义属性的AspNetUsers表。无法识别Web安全性。我使用的是VS2013、.Net 4.5、EntityFramework v4.0。您是否缺少using语句?@Chris,我添加了一种不需要
Web安全性的替代方法。
@Oliver:我知道这种方法。我想我得把用户名放在数据库里?我想要一个int-id。