在MVC中显示当前用户数据

时间:2015-11-20 13:50:04

标签: asp.net-mvc asp.net-mvc-3

在MVC中,我想要对用户进行身份验证,他们登录时必须无法查看其他用户数据。用户必须只能CRUD自己的数据。我创建了两个模型:

public class User
{
    public int id { get; set; }
    public string Username { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }

    public List<Product> Products { get; set; }
}


public class Product
{
    public int productId { get; set; }
    public string productName { get; set; }
    public double productPrice { get; set; }

    public User Users { get; set; }
}

我有产品控制器,我想从CRUD其他用户数据中验证用户。

2 个答案:

答案 0 :(得分:1)

您可以使代码仅对登录用户可用的产品执行CRUD操作。 根据您的要求使用以下方案。

public class User
{
    public int id { get; set; }
    public string Username { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }

    public List<Product> Products { 
        get{ 
            //get all products from database/storage for this user. for ex: I have called a method to get products
            //you can filter products related to this user by sending this user id to database or using code like below
            //Writing this code/logic in controller would be preferable

            return GetAllProducts().Where(p => p.Users.id == this.id).ToList();
        }
        set; 
    }
}

答案 1 :(得分:0)

同意 Rajesh ,我建议您使用当前用户的数据并过滤您展示的Rajesh。当前用户的数据可能包括当前登录用户的ID。如果您使用Cookie来保持用户的会话,您可以从控制器或过滤器属性中的Cookie中检索其ID:HttpContext.Current.Request.Cookies["auth_cookie"]