我正在使用ASP.NET WebAPI以及Visual Studio模板附带的内置身份验证和身份服务。我现在知道用户可以访问系统并进行身份验证。
下一个逻辑步骤是允许用户创建记录。让我们说用户可以拥有一个"项目"。如何在创建项目时将用户与项目相关联?项目表只存储User.Identity.GetUserId()提供的user_id
似乎是合乎逻辑的。
现在,假设一个项目由任务组成。默认情况下,WebAPI将创建一个Tasks控制器,我在其中发布任务。我想我需要在创建任务时注入一些额外的信息(例如项目ID)。
但是,如果有人想要添加一个不属于他们的项目的任务。我需要通过加载项目并检查user_id
字段来验证这一点。现在我要向控制器添加两个存储库。这似乎做了很多工作。
这是我自己的懒惰让这看起来很难吗?
答案 0 :(得分:0)
我认为这可能是一个相关问题,因为您似乎正在寻找记录级授权。
MVC / ASP.Net Best Practice for Record-Level Authorization
使用多个存储库也有其优点。请参阅此处以获取使用示例。
在这里,您可以将多个存储库包装在UnitOfWork类中。
我希望这能指出你正确的方向。