如何根据MVC 4中当前登录的用户显示数据?

时间:2015-07-25 07:32:51

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

我使用Entity Framework进行基于登录身份验证的asp.net MVC 4应用程序。在这里,用户可以自己注册并在应用程序中添加自己的记录。

因此,每当他们登录时,他们应该只看到自己的记录,而不是其他人。想根据当前登录的用户过滤记录。

我们可以在不影响性能的情况下采取任何简单的方法吗?是否有可能在一个地方处理这种情况?

用户ID值

1 1测试值1 2 2测试值2
2 3测试值3
1 4 XYZABC

此外,需要通过查看按网址命中来限制用户2 例如: 用户2不应查看http://wesite.com/Details/1http://wesite.com/Details/4,反之亦然。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用要添加到该用户的任何自定义属性创建继承自IdentityUser的ApplicationUser类:

public class ApplicationUser : IdentityUser
{      
    public int CustomProperty { get; set; }
    ...
}

然后将ApplicationUser传递给dbcontext:

public class YourDbContext : IdentityDbContext<ApplicationUser>

当您想要获取特定用户的数据时,只需获取登录用户的身份:

var userId = User.Identity.GetUserId();

_dbContext.YourTable.Where(x => x.UserId = userId); 

这样您就不必限制特定ID的路由,只需使用当前登录用户的ID即可获取所需数据。