Bai*_*ose 43 c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity
我是ASP.NET MVC的新手,我一直在开发一个带有个人用户身份验证的MVC 5应用程序.在做我的应用程序时,我一直在做分层模式,比如分离模型层,DAL层,Repos等等.但是现在在MVC 5中,我希望能够使用他们称之为Identity的用户和角色管理和身份验证,然后仍然有我的应用程序的分层结构,因为现在似乎Identity与MVC项目本身,其中的用户和角色模型以及上下文相结合.
我现在在我的应用程序中所做的是我在MVC项目(在单独的文件夹中)中拥有所有我应该要分离的层,如我的DAL,UnitOfWork,Repos,其他模型等,只是为了使它工作,现在.我知道这不是正确的做法.
所以,任何人都可以向我指出一些关于这个的好例子或文章,或者直接解释它是否可能以及如何?Google对此并不友好.谢谢!
Vli*_*nce 33
这是我尝试的快速草稿......我会创建这些图层:
Contoso.Core:
该层包含表示我的数据库TABLES的所有实体/类.
所以,例如,我会有一个:
有些人称这些实体/类:域对象,其他人称之为POCO类.
或者,这些实体/类在核心层中定义,因为它们可以(或可以不)在其他层中使用.
Contoso.Data:
这个层是我定义我的ContosoDbContext.cs类的地方.它在我所有DbSet<>定义的文件中.例如,我在我的内容中会有以下内容ContosoDbContext.cs:
不用说,Contoso.Data层将在图层上具有依赖性Contoso.Core.另外,Contoso.Data我将拥有我的Generic Repository以及与"数据访问"相关的任何内容.
Contoso.Service:
这一层将是我放置所有业务规则的地方.例如,我可能有一个UserService.cs可以有Login()方法的类.Login()方法将接收用户名/密码并调用存储库以查找用户.
因为服务层需要存储库,所以我将在Contoso.Data图层上具有依赖关系,因为我将使用User类(碰巧住在Contoso.Core图层内),我也会对该图层有依赖性Contoso.Core.
Contoso.Web.Framework:
该层将依赖于Contoso.Core,Contoso.Data和Contoso.Service.我会用这个Contoso.Web.Framework层来配置我的依赖注入.
Contoso.Web:
最后一层,即MVC 5.0应用程序,将依赖于层上Contoso.Web.FrameworkAND上的Contoso.ServiceAND Contoso.Core.
控制器将调用生成在Contoso.Service层中定义的类中的方法(例如Login()方法).
Login()方法可能会也可能不会,例如,返回一个User类(null或填充),因为它返回一个User类,并且因为我们在Controller中,所以我们的Contoso.Web层需要依赖于Contoso.Service和Contoso.Core.
当然,我没有详细说明这里或每一层的所有内容,但这只是为了给你一个我使用的架构类型的例子.
到目前为止,我还没有回答你的问题,但我对MVC 5.0及其新的Identity机制知之甚少,我相信该Contoso.Core层Microsoft.AspNet.Identity.EntityFramework除了需要依赖于Microsoft.AspNet.Identity.Core
同样,我的ContosoDbContext.cs类需要实现IdentityDbContext恰好属于的接口Microsoft.AspNet.Identity.EntityFramework.dll.
这意味着我的Contoso.Data图层将依赖于,Microsoft.AspNet.Identity.EntityFramework并且很可能Microsoft.AspNet.Identity.Core也是...
正如您所说,当您创建一个新的MVC 5.0项目时,所有这些都存在并在单个应用程序中定义.什么都没有或已经分层.因此,在上面的体系结构中,ContosoDbcontext.cs类存在于Contoso.Data层内,而不是直接位于ASP.NET MVC应用程序中.
由于我没有尝试过新的ASP.NET身份,也没有尝试解决问题,我不知道如何诚实地回答你的问题.我想你必须尝试移动东西.
如果您这样做,请随时告诉我们它是如何进行的以及您遇到的问题/问题.
与此同时,我希望这能帮助你解决一些问题.
文斯
| 归档时间: |
|
| 查看次数: |
10633 次 |
| 最近记录: |