限制.NETCore中记录所有者对数据的访问
我对.NETCore 2.0比较陌生,我想知道如何确保一个人只能查看/编辑他们创建的记录,并且是该记录的“所有者” 在从控制器保存之前,我知道如何将当前用户添加到创建对象,但我不确定检查编辑/读取访问的最佳方法。我应该在控制器中保留此逻辑吗?或者在模型/存储库上强制执行此操作 我有一个存储库功能来编辑“交易”对象 我觉得在我的整个应用程序中有很多这样的代码,不确定是否有更内置的方法来检查Entity Framework或.NET的身份包限制.NETCore中记录所有者对数据的访问,.net,asp.net-mvc,entity-framework,asp.net-core,.net,Asp.net Mvc,Entity Framework,Asp.net Core,我对.NETCore 2.0比较陌生,我想知道如何确保一个人只能查看/编辑他们创建的记录,并且是该记录的“所有者” 在从控制器保存之前,我知道如何将当前用户添加到创建对象,但我不确定检查编辑/读取访问的最佳方法。我应该在控制器中保留此逻辑吗?或者在模型/存储库上强制执行此操作 我有一个存储库功能来编辑“交易”对象 我觉得在我的整个应用程序中有很多这样的代码,不确定是否有更内置的方法来检查Entity Framework或.NET的身份包 如果有帮助的话,我并不担心管理员看到所有的东西。每个用户只
如果有帮助的话,我并不担心管理员看到所有的东西。每个用户只能看到自己的记录 将其保存在存储库中应该没问题。我不确定您是如何生成记录的,我建议您在存储库中使用ff:
public IEnumerable<Trade> GetTradesByUser(userId){
return _context.Trades
.Where(t => t.UserId == userId)
.ToList();
}
因为你肯定他没有看到其他人的记录
希望这会有所帮助,将其保存在存储库中应该没问题。我不确定您是如何生成记录的,我建议您在存储库中使用ff:
public IEnumerable<Trade> GetTradesByUser(userId){
return _context.Trades
.Where(t => t.UserId == userId)
.ToList();
}
因为你肯定他没有看到其他人的记录
希望这对您有所帮助首先,您可以使用.net core identity()(如果您的应用程序需要的话),或者您可以实现自己用户的管理逻辑 其次,如果我理解正确的交易只能由创建该交易的用户操纵 有两种情况
无论哪种方式,您都需要将用户实体与交易实体相关联并持久化用户数据。我还认为任何其他实体的情况都是一样的。首先,您可以使用.net core identity的()(如果应用程序需要的话),或者您可以实现自己用户的管理逻辑 其次,如果我理解正确的交易只能由创建该交易的用户操纵 有两种情况
public void EditTrade(Trade trade)
{
_context.Trade.Add(trade);
}