我需要开始一个新的mvc项目,而且我一直都有关于asp身份的问题,永远都不知道该放在哪里!
我打算组织这样的解决方案:
dapper
作为数据库访问技术的存储库类但是我有点困惑,在开始编码之前我需要更有经验的人的建议(因为到目前为止我的所有项目都只是一个有数据访问权限的项目):
答案 0 :(得分:2)
这就是我组织我最近的一个项目的方式:
Common
- 这是解决方案中的核心项目。它包含所有域实体以及从ASP.NET Identity Framework继承自ApplicationUser
类的IdentityUser
类。通常,此类位于新的ASP.NET MVC项目模板中;我决定将它放入核心库,因为它代表了更高层和抽象级别可能需要的通用实体。因此,Common
引用了Microsoft.AspNet.Identity.Core
和Microsoft.AspNet.Identity.EntityFramework
个程序集。
DataAccess
- 此项目引用Common
库并包含Entity Franework DatabaseContext
以及一些存储库。我使用Code First方法,我的DatabaseContext
继承自IdentityDbContext<ApplicationUser>
。所以它为我提供了一个很好的数据库结构,包含Users
和Roles
的表以及其他ASP.NET Identity的东西,以及代表我Common
项目中的自定义业务实体的表,所以我可以轻松地将我的自定义实体与Identity对象连接。
WebApi
- 这是使用REST
和DataAccess
个库的Common
服务。所有授权和身份验证作业都在此处使用令牌身份验证完成。
Web
- 这只是我REST
服务的网络客户端。
所以,回答你的问题:如果它真的很小且易于管理,你可以将ASP.NET Identity类和Entity Framework数据库上下文放在一个项目中;否则,最好离开默认项目模板并为每个主要应用程序模块引入图层。