使用MVC4项目和DAL项目在解决方案中实现SimpleMembershipProvider的位置

时间:2013-11-19 10:13:50

标签: asp.net-mvc-4 ef-code-first entity-framework-5 simplemembership

我的解决方案的结构如下:

Solution tree

我正在使用ÀSP.NET MVC 4,而DAL项目正在使用Entity Framework 5Code First工作流程。 MVC模板设置了<profile defaultProvider="DefaultProfileProvider">,我需要实现SingleMemebershipProvider(默认情况下不创建包含它的新模板)。我找到了几个关于这个主题的教程,但对于我的场景,我想知道SingleMemebrshipProvider的位置在哪里。

我想使用现有的数据库,而且我已经读过,可以映射SingleMemebrshipProvider使用的任何表格(尽管我打算创建实体以完全用于处理目的) SingleMemebrshipProvider)但从这个角度来看,似乎逻辑地将SingleMemebrshipProvider包含在我的DAL项目中。

然而,它的服务将在NVC项目中使用,我也想知道如果我尝试在另一个项目中设置SingleMemebrshipProvider,我是否会破坏任何概念。提供SingleMemebrshipProvider的默认模板包含控制器 - AccountController,过滤器 - InitializeSingleMemebrshipProviderAttributes,模型 - AccountModels,也许MVC期望找到这些类。

但是,我不确定采取哪种方法。在以这种方式构建的解决方案中SingleMemebrshipProvider的位置在哪里? (如果可能的话也解释为什么)。

1 个答案:

答案 0 :(得分:1)

如果你问我,它属于ASP.NET MVC项目。我通常会在Web项目中添加一个名为&#34; Security&#34;的新文件夹。我把诸如Membership和Role provider实现之类的东西放在这个文件夹中。

您应该问自己是否打算与其他Web项目共享实现,如果是这样,那么您可以创建一个名为NameOfProject.Web.Mvc的单独项目,并放置所有与mvc相关的内容,如成员资​​格和角色提供程序, HtmlHelpers,过滤器等。

我使用相同的方法来分离我的REST服务,基于MVC项目中的Web API,将它们移动到名为NameOfProject.Web.Http的单独项目中。 这样,构建另一个客户端非常容易,比如使用与其他客户端相同的服务实现的控制台或winforms应用程序。

这是我的项目结构的一个例子,没有单独的项目。

enter image description here

MVC属性的单独项目示例

enter image description here

我希望这有帮助!

祝你好运!