ASP.net MVC 4用户和角色如何管理(“Membership.Provider”属性必须是“ExtendedMembershipProvider”的一个实例。)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我已经尝试了2天,以获得一些工作,但迄今为止,这是毫无意义的。我需要的是管理用户和他们的角色,没有别的。

我所尝试的是了解如何在MVC中做到这一点,但似乎无法在互联网上或任何MVC 4书籍中找到有关如何操作的详细教程。

我开始通过使用aspnet_regsql实用程序启用aspnet数据库,创建这些表:

这就是我在教程中发现的所有东西,它没有展示如何与这些表交互(我认为这是与默认的成员资格提供者交互),到目前为止,我发现有3个主要的选项可以做到这一点:

  • 默认会员提供者(我从中不知道)
  • 通用提供商
  • SimpleMembership

我发现这个教程:

http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-7

在这里,他们要求创建一个带有互联网应用程序模板的新MVC 4应用程序项目,并复制与账户控制相关的所有文件。

我为我的项目做了这些,但只要我尝试登录,我就会得到:

要调用此方法,“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例。

根据这个论坛:http : //social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/d352bb1b-577c-42b7-8872-5ed59cd65f32/

是因为我如何在我的web.config文件中定义配置文件,成员资格和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 当我使用互联网应用程序模板创建MVC 4应用程序时,会使用什么成员资格提供程序?

问题2

我在做什么错误的web.config文件?我如何正确定义提供者?

问题#3

哪个选项更适合我?如果你知道一个很好的教程可以请你把它连接起来吗?

提问于
用户回答回答于

使用的会员提供商已注明日期。新的通用会员供应商使用不带前缀的新表名称aspnet_

1)请看Scott Hanselman的链接。

2)profile如果你不使用它,你不需要。roleManager配置不正确。

仅供参考:请machineKey在web.config中明确定义; 它将在未来节省很多头痛。

用户回答回答于

问题1当我使用互联网应用程序模板创建MVC 4应用程序时,会使用什么成员资格提供程序?

答案:SimpleMembershipProvider

问题#2我在做什么web.config文件错误?我如何正确定义提供者?

答案:对于SimpleMembershipProvider,不需要修改web.config文件。有关详细的配置/设置信息和教程,请参阅此处:http : //aaron-hoffman.blogspot.com/2013/02/aspnet-mvc-4-membership-users-passwords.html

扫码关注云+社区