我在由{strong>三个图层组成的ASP.NET Identity 2.0
项目中使用ASP.NET MVC5
; Web应用程序(表示层),单元测试(测试项目)和类库(数据层)。通常IdentityConfig.cs
位于Web应用程序的App_Start
文件夹中,但当我实现this页面上指示的基于组的权限管理时,我希望保留所有域模型和{{1文件到数据层项目中的Identity文件夹而不是Web项目(表示层)。因为IdentityConfig.cs
需要访问放置在我的数据层项目中的IdentityConfig.cs
类。这样做有什么问题吗?另一方面,您能否解释一下DbContext
文件夹是什么?
以下是我项目中的ASP.NET Identity文件夹结构:
具体
EFDbContext
实体(我的实体类除了ASP.NET身份实体)
身份
ApplicationGroupManager
ApplicationGroupStore
GroupStoreBase
IdentityConfig
IdentityModels
App_Start
控制器
的AccountController
GroupsAdminController
ManageController
RolesAdminController
UsersAdminController
答案 0 :(得分:1)
只要您拥有asp.net身份,就必须在表示层(Web项目)中添加对它的引用,配置将从那里开始。
如果您将其移至数据访问层,则会在数据访问中引入安全问题,这是不正确的。
通常情况下,我只是将它保留在Web项目中并创建我自己的用户类,并通过其ID将其链接到ApplicationUser
类,但如果您必须将其分隔,那么您可以放置{{1}在一个单独的库中,它处理交叉问题,如安全性,日志记录和异常处理,因为该层将在所有层中工作。
在数据访问中,您可以拥有自定义用户和角色存储,并将配置放在交叉剪切库中,并链接表示层中的所有内容,因为这是您的Web应用程序的起点。
App_Start只是一个普通文件夹,其中包含将在应用程序启动时执行的代码,您可以将此代码放在其他任何位置,全部由Global.asax文件调用