这听起来像是一个愚蠢的问题,但我只是想知道我是否在任何地方错过了一个技巧。
场景是,我有一个使用 Simple Memebership 的 Web 应用程序,用户可以注册使用它(例如发票程序)。
但是,他们应该只能查看/更新/删除他们自己添加到数据库/Web 应用程序的信息。
确保用户只能访问其信息的最佳方法是什么?
是否为每个表添加一个用户名字段,例如:
public class Invoice
{
public int InvoiceId { get; set; }
public int CustId { get; set; }
public string UserName { get; set; }
}
public class Item
{
public int ItemId { get; set; }
public int InvoiceId { get; set; }
public string UserName { get; set; }
}
...然后在任何访问数据的控制器中,只需在每个查询中添加对用户名的检查,例如:
var Inv = db.Invoices.Where(x => x.UserName = User.Identity.Name);
var Itm = db.Items.Where(y => y.UserName = User.Identity.Name);
这就是我目前正在使用的,但想知道这是否是最佳实践?或者如果现在我们进入 MVC4 有更简单的方法?
最好使用UserProfile表中的UserName或UserId,还是有关系?
更新以在评论后添加清晰度
因此,已有 10 个用户注册 - 并且都创建了自己的发票。我不希望任何用户看到任何其他用户的发票。
感谢您的任何建议。
标记