Asp.net mvc 4 在MVC4项目和DAL项目的解决方案中,在何处实现SimpleMembershipProvider

Asp.net mvc 4 在MVC4项目和DAL项目的解决方案中,在何处实现SimpleMembershipProvider,asp.net-mvc-4,ef-code-first,entity-framework-5,simplemembership,Asp.net Mvc 4,Ef Code First,Entity Framework 5,Simplemembership,我的解决方案的结构如下: 我正在使用ÀSP.NET MVC 4,而DAL项目正在使用Entity Framework 5和code-First工作流。MVC模板设置了,我需要实现singlemembershipprovider(不创建默认包含它的新模板)。我找到了几个关于这个主题的教程,但对于我的场景,我想知道SingleMemebrshipProvider的位置在哪里 我想使用现有的数据库,而且我已经读到,映射SingleMemebrshipProvider要使用的表是很好的(尽管我计划创建

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

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

我想使用现有的数据库,而且我已经读到,映射
SingleMemebrshipProvider
要使用的表是很好的(尽管我计划创建实体完全是为了处理
SingleMemebrshipProvider
)但从这个角度来看,在我的
DAL
项目中,从逻辑上讲似乎包括了
SingleMemebrshipProvider

但是,它的服务将从
NVC
项目中使用,而且我想知道如果我尝试在另一个项目中设置
SingleMemebrshipProvider
,是否会打破任何概念。提供
SingleMemebrshipProvider
的默认模板具有Controller-
AccountController
、Filter-
initializesinglememebrshipProviderAttribute
、Models-
AccountModels
,并且可能
MVC
希望找到这些类


然而,我不确定该采取哪种方法。在以这种方式构建的解决方案中,
SingleMemebrshipProvider
的位置在哪里?(如果可能,也解释一下原因)。

如果你问我的话,它属于ASP.NET MVC项目。我通常会在web项目中添加一个名为“Security”的新文件夹。我把一些东西,比如成员资格和角色提供者实现放在这个文件夹中

您应该问问自己是否要与其他web项目共享实现,如果是这样,您可以创建一个名为NameOfProject.web.Mvc的单独项目,并将所有与Mvc相关的内容,如成员资格和角色提供程序、HtmlHelpers、过滤器等放在此处

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

下面是一个没有单独项目的项目结构示例

MVC属性的单独项目示例

我希望这有帮助


祝你好运

另一个项目的想法实际上对我来说很好。困扰我的是(因为我从未使用过SimpleMembership或任何其他成员资格提供程序),这不会使使用提供程序的功能变得太复杂。我现在能想到的是,如果我为SimpleRM创建另一个项目,那么从MVC项目到这个项目的引用就足以开始使用AllowAnonymous、Authorize等属性了(角色..等..?是的,这将像预期的那样工作,因为您在web.config中的和下注册了提供程序。通过web.config注册后,您可以使用mvc特定的属性,如Authorize、AllowAnonymous等。更多信息可以在这里找到:很好,非常感谢。我想这次我将坚持原来的属性MVC项目,正如你最初建议的。只是为了适应SingleMembershipProvider。但是我真的很喜欢分离的想法。+1!很高兴能提供帮助,是的,这真的取决于情况。如果你只有几个类,就去MVC项目,并随着它们的增长将它们分离到另一个项目中