我已经试了两天,但迄今为止毫无进展。我需要管理用户及其角色,没有其他的需求。
我尝试理解如何在MVC中实现它,但无论在互联网上还是在任何MVC 4书籍中都找不到详细的教程。
我首先使用aspnet_regsql实用程序启用了aspnet数据库,创建了这些表:
这是我在教程中找到的全部内容,它并未显示如何与这些表进行交互(我假设是使用默认成员资格提供程序),到目前为止,我发现有三种主要方法可以实现这一点:
- 默认成员资格提供程序(我对此一无所知)
- 通用提供程序
- SimpleMembership
我找到了这个教程:
http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-7
这里要求创建一个带有Internet应用程序模板的新MVC 4应用程序项目,并复制所有与帐户控件相关的文件。
我为我的项目做到了这一点,但是一旦尝试登录,我就会收到以下错误:
To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".
根据这个论坛: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/d352bb1b-577c-42b7-8872-5ed59cd65f32/,这是由于我在web.config文件中定义的配置文件中如何定义profile、membership和roleManager提供程序。
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="DatabaseConnection" applicationName="/" />
</providers>
</profile>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DatabaseConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="DatabaseConnection" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
我只需要能够添加新用户,为他们分配角色,并根据访问视图的角色显示不同的内容。
问题 #1 使用Internet应用程序模板创建MVC 4应用程序时使用了哪个成员资格提供程序?
问题 #2
我在web.config文件中做错了什么?如何正确定义提供程序?
问题 #3
哪个选项更适合我?如果您知道一个很好的教程,请给我提供链接吗?
非常感谢任何帮助!先感谢您!