初学者的Asp.net MVC 4 EF Code First会员资格提供程序

3
尽管我提出了一些关于如何在ASP.NET MVC 4中使用成员资格提供程序的问题,但几乎没有得到任何回应。对于新手的我来说,在ASP.NET MVC 4中开始使用成员资格提供程序需要时间。我一直在阅读文章并尝试着做一些事情,但这只增加了困惑而不是帮助。
以下是初学者的一些问题:
1. 在决定为哪个项目使用哪个成员资格提供程序之前,我想尝试所有的成员资格提供程序(包括简单的成员资格提供程序)。我可以在ASP.NET MVC 4中使用哪些成员资格提供程序以及如何配置每一个呢?有没有文档或链接?
2. 尽管Internet模板带有预配置的Account控制器来设置成员资格功能,但是我该如何将成员资格功能添加到基本模板中?为了使用成员资格提供程序,我应该遵循哪些步骤/配置/设置(我认为不同的成员资格提供程序会有不同的步骤/配置/设置)。
3. 运行使用Internet项目模板创建的ASP.NET MVC 4项目(而不进行任何更改)会在数据库中创建5个表,即UserProfile、webpages_Membership、webpages_OAthMembership、webpages_Roles和webpages_UsersInRoles。在AccountModel.cs中,我只看到一个UserProfile的定义。其他表在哪里定义?我是否总是需要在数据库中拥有所有这些表才能使用成员资格?我可以自定义、重新命名或选择不使用其中一些表吗?
4. 我没有在Internet项目模板的web.config中看到任何成员资格配置,但它却在使用成员资格。在一些文章和教程中,我看到人们通过向web.config中添加来配置它。我何时需要向web.config添加配置设置,何时不需要呢?
我认为成员资格提供程序旨在使开发人员的生活变得更加轻松,但对于我来说,它却让生活更加困难。我知道我真的需要学习它,这就是我过去7、8天一直在努力的事情,但我还是无法弄清楚。欢迎任何帮助、链接(希望不是我已经看了很多次的那些链接)。

但这些都是实际问题,可以回答的问题,它们密切相关,回答其中一个问题也可以同时回答另一个问题。 - ZedBee
2个回答

3
我同意你的看法,关于会员类型做什么的指南太烂了。
  1. 您可以在ASP MVC中使用任何提供者。Visual Studio中的默认模板是Internet MVC应用程序,它是唯一使用SimpleMembership的模板。
  2. 好问题,我根本找不到任何明确的、合适的文档。据我所知,大多数会员功能都设置得非常相似。
  3. 至少SimpleMembership将创建所需的DB表,如果不存在的话。我认为你真正可以定制的只有用户表。
  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/ 在那篇文章中,还有两篇其他有用的文章。

1
对于问题3,我尝试了一些东西,结果是:
是的:您可以向UserProfile(和所有其他表,我想)添加新列。
不:即使您已经修改了AccountModels中的代码以匹配新表名,也无法重命名表格。在这种情况下,当您启动应用程序时,将再次创建一组具有旧名称的表格。并且MVC4(Membership、WebSecurity、Users、Roles等)提供的所有代码都将使用旧表格。
而且,我从未找到任何关于如何重命名这些表格的信息。

那是不正确的。你可以将UserProfile表重命名为其他名称。我已经这样做了。然而,我找不到如何将webpages_UsersInRoles表重命名的方法。但我相信肯定有解决办法。 - radkan
感谢radkan提供的额外信息。我听说过类似于“表名在MVC中是硬编码”的东西,但现在无法确定是哪个表的名称。从长远来看,MVC源代码可能会发生变化,然后我们可以更改名称。 - cheny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接