【问题标题】:Asp.net MVC 4 EF Code First Membership Providers for Beginners面向初学者的 Asp.net MVC 4 EF Code First 会员资格提供商
【发布时间】:2013-01-23 09:15:21
【问题描述】:

虽然我问了一些关于如何在 ASP.NET MVC 4 中使用会员提供程序的问题,但几乎没有得到任何回应。我需要时间(作为新手)开始使用 ASP.NET MVC 4 中的成员资格提供程序。我一直在阅读文章,尝试一些东西,但这只会增加混乱而不是帮助。

初学者对以下问题的答案是什么:

  1. 我想先尝试所有成员资格提供程序(包括简单成员资格提供程序),然后再决定我应该为哪个项目使用哪个。我可以在 ASP.NET MVC 4 中使用哪些成员资格提供程序以及如何配置其中的每一个。有任何文档或链接吗?
  2. 虽然 Internet 模板带有预配置的帐户控制器,可以设置会员功能,但是如何将会员功能添加到基本模板。为了使用会员提供商配置会员资格,我应该遵循哪些步骤(我假设不同的会员提供商会有不同的步骤/配置/设置集)。
  3. 运行使用 Internet 项目模板创建的 ASP.NET MVC 4 项目(不对其进行任何更改)在数据库中创建 5 个表,即 UserProfile、webpages_Membership、webpages_OAthMembership、webpages_Roles、webpages_UsersInRoles)。在AccountModel.cs 中,我只看到了一个用户配置文件的定义。其他表在哪里定义。为了使用会员资格,我是否总是需要在数据库中拥有所有这些表。我可以自定义、重命名或选择不使用其中的一些吗?
  4. 我在 web.config 中没有看到 Internet 项目模板的任何成员资格配置,但正在使用成员资格。在一些文章教程中,我看到人们通过将 <membership></membership> 添加到 web.config 来配置它。什么时候需要向 web.config 添加配置设置,什么时候不需要?

我认为会员资格提供商旨在让开发人员的生活变得轻松,但对我来说,这让开发变得更加困难。 我知道我真的需要研究它,这就是我在过去 7、8 天里一直在尝试的东西,但无法弄清楚。 任何帮助、链接(希望不是我多次浏览的链接)都非常受欢迎。

【问题讨论】:

  • 但这些都是基于我所面临的实际问题的实用、可回答的问题,它们密切相关,一个答案可以同时回答另一个。

标签: asp.net-mvc ef-code-first asp.net-membership


【解决方案1】:

我同意你的观点,关于哪些会员类型做的很糟糕的指导。

  1. 您可以将任何提供程序与 ASP MVC 一起使用。 Visual Studio 中的默认模板即 Internet MVC 应用程序是唯一使用 SimpleMembership 的模板。

  2. 好问题,我根本没有找到任何明确的、体面的文档。据我所知,大多数会员的设置都非常相似。

  3. 至少 SimpleMembership 将创建所需的数据库表,如果它们不存在则需要这些表。我认为您唯一可以真正自定义的就是您的用户表。

  4. 我认为就像 sql 表一样,web.config 中的成员资格标签是隐含的。如果您接受默认值,它们就会神奇地工作。

我找到的最佳链接是这个 http://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/

在那篇文章中还有另外两个很有帮助。

【讨论】:

    【解决方案2】:

    对于问题 3,我尝试了一些方法,结果是:

    是的:您可以将新列添加到 UserProfile(以及所有其他表,我猜)

    :您不能重命名表,即使您已修改 AccountModels 中的代码以匹配新表名。 在这种情况下,当您启动应用程序时,将再次创建一组具有旧名称的表。并且 MVC4(MembserShip, WebSecurity, Users, Roles....) 提供的所有代码都将使用旧表。

    而且,我从未找到有关如何重命名这些表的任何信息。

    【讨论】:

    • 这是不正确的。您可以将 UserProfile 表重命名为其他名称。我已经做到了。但是我找不到如何重命名 pages_UsersInRoles 表。但我确信那里有一条出路。
    • 感谢 radkan 提供的更多信息。我听说过类似“表的名称在 MVC 中硬编码”之类的东西,但现在无法分辨出哪个表的名称。从长远来看,MVC 源代码可能会更改,然后我们可以更改名称。
    猜你喜欢
    • 2011-04-12
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多