【问题标题】:Where to implement SimpleMembershipProvider in solution with MVC4 project and DAL project在具有 MVC4 项目和 DAL 项目的解决方案中实施 SimpleMembershipProvider 的位置
【发布时间】:2013-11-19 10:13:49
【问题描述】:

我的解决方案的结构是这样的:

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

我想使用现有的数据库,而且我已经读到映射SingleMemebrshipProvider 使用的任何表都很好(即使我计划创建实体正是为了处理@987654331 @) 但从这个角度来看,将SingleMemebrshipProvider 包含在我的DAL 项目中似乎是合乎逻辑的。

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

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

【问题讨论】:

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


    【解决方案1】:

    如果你问我,它属于 ASP.NET MVC 项目。我通常会在 Web 项目中添加一个名为“Security”的新文件夹。我将诸如 Membership 和 Role 提供程序实现之类的东西放在这个文件夹中。

    您应该问自己是否要与其他 web 项目共享实现,如果是这样,那么您可以创建一个名为 NameOfProject.Web.Mvc 的单独项目并放置所有与 mvc 相关的东西,例如 Membership 和 Role 提供程序, HtmlHelpers,过滤器等在这里。

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

    这是我的项目结构示例,没有单独的项目。

    MVC 属性的单独项目示例

    我希望这会有所帮助!

    祝你好运!

    【讨论】:

    • 另一个项目的想法对我来说实际上听起来很不错。困扰我的事情(因为我从未使用过 SimpleMembership 或任何其他会员资格提供程序)不会使使用提供程序的功能变得太复杂。我现在能想到的事情 - 如果我为 SimplerMP 创建另一个项目,那么只有 MVC 项目对这个项目的引用就足以开始使用 AllowAnonymous、Authorize(Role.. etc 等属性)?跨度>
    • 是的,这将像预期的那样工作,因为您在 部分下的 web.config 中注册了提供程序。通过 web.config 注册后,您可以使用 mvc 特定属性,如 Authorize、AllowAnonymous 等。更多信息可以在这里找到:msdn.microsoft.com/en-us/library/6e9y4s5t(v=vs.100).aspx
    • 很好,非常感谢。我想这次我会坚持原来的 MVC 项目,就像你最初建议的那样。只是为了习惯 SingleMemebershipProvider。但我真的很喜欢分离的想法。为此 +1!
    • 很高兴能提供帮助,是的,这真的取决于具体情况。如果您只有几个类,请选择 MVC 项目,并随着它们的增长将它们分离到另一个项目
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2020-01-02
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多