在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其他用户数据中验证用户。
答案 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"]
。