首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.net MVC4用户和角色管理("Membership.Provider“属性必须是”ExtendedMembershipProvider“的实例。)

ASP.net MVC4用户和角色管理("Membership.Provider“属性必须是”ExtendedMembershipProvider“的实例。)
EN

Stack Overflow用户
提问于 2013-03-28 00:22:32
回答 3查看 38.6K关注 0票数 16

我已经尝试了两天来让一些东西工作,但到目前为止还是毫无意义。我需要的是管理用户和他们的角色,没有其他。

我试图理解如何在MVC中做到这一点,但我似乎找不到关于如何做到这一点的详细教程,无论是在互联网上还是在任何MVC4书籍中。

我首先使用aspnet_regsql实用程序启用了aspnet数据库,这将创建以下表:

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

我认识nothing)

  • Universal Providers

  • SimpleMembership

  • 默认成员资格提供程序

我找到了这个教程:

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

在这里,他们要求使用internet应用程序模板创建一个新的MVC4应用程序项目,并复制所有与帐户控制相关的文件。

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

若要调用此方法,"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当我使用internet应用程序模板创建MVC4应用程序时,使用的是什么成员提供程序?

问题#2

我对web.config文件做错了什么?如何正确定义提供程序?

问题#3

哪种选择更适合我?如果你知道它的一个很好的教程,你能给我链接吗?

如有任何帮助,我们将不胜感激!提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-28 01:03:24

您正在使用的成员资格提供程序已过时。新Universal Membership Provider使用不带前缀aspnet_的新表名。

1)请查看Scott Hanselman的链接。

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

仅供参考:请在web.config中显式定义machineKey;这将为您在将来省去很多麻烦。

附言:我同意你的观点。我刚读完Pro ASP.NET MVC 4 by Adam Freeman;他没有提到会员提供商。如果您想阅读,ASP.NET MVC 4 and the Web API by Jamie Kurtz使用旧的成员资格提供程序。

票数 4
EN

Stack Overflow用户

发布于 2013-08-21 03:48:40

问题#1当我使用internet应用程序模板创建MVC4应用程序时,使用的是什么成员资格提供程序?

答案: SimpleMembershipProvider

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

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

票数 1
EN

Stack Overflow用户

发布于 2014-08-19 18:22:36

成员资格和安全性在ASP.Net中极其复杂,在ASP.NET MVC中仍然过于复杂。但幸运的是,完全不使用内置的成员资格是可能的。我已经创建了简单的解决方案,并在许多项目中使用,现在将其添加到github中,请参阅http://github.com/TesserisPro/ASP.NET-SImple-Security-Provider,您可以轻松地对其进行自定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15663973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档