C# ASP.net MVC 4用户和角色管理(“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例)
我花了两天的时间想让它工作起来,但到目前为止毫无意义。我需要的是管理用户及其角色,而不是其他 我试着去理解如何在MVC中做到这一点,但我似乎找不到关于如何做到这一点的详细教程,无论是在互联网上还是在任何MVC4书籍中 我首先使用aspnet_regsql实用程序启用aspnet数据库,这将创建以下表: 这就是我在教程中找到的所有内容,它没有显示如何与这些表交互 (我假设是使用默认的成员资格提供程序),到目前为止,我发现有3个主要选项可供选择:C# ASP.net MVC 4用户和角色管理(“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例),c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我花了两天的时间想让它工作起来,但到目前为止毫无意义。我需要的是管理用户及其角色,而不是其他 我试着去理解如何在MVC中做到这一点,但我似乎找不到关于如何做到这一点的详细教程,无论是在互联网上还是在任何MVC4书籍中 我首先使用aspnet_regsql实用程序启用aspnet数据库,这将创建以下表: 这就是我在教程中找到的所有内容,它没有显示如何与这些表交互 (我假设是使用默认的成员资格提供程序),到目前为止,我发现有3个主要选项可供选择: 默认成员资格提供者(我对其一无所知) 通用供应商
- 默认成员资格提供者(我对其一无所知)
- 通用供应商
- 简单记忆
<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
哪个选项更适合我?如果你知道一个很好的教程,你能帮我链接到它吗
任何帮助都将不胜感激!提前谢谢您使用的会员资格提供程序已过期。New使用不带前缀的新表名
aspnet\uu
1) 请看一下Scott Hanselman的链接
2) 如果不使用配置文件,则不需要它<代码>角色管理器配置不正确
仅供参考:请在web.config中明确定义machineKey
;这将在将来为你省去很多头痛
另外,我同意你的看法。我刚刚读完亚当·弗里曼的《ASP.NETMVC4教程》;他没有提到会员资格提供者ASP.NET MVC 4和Jamie Kurtz的Web API
如果您想阅读,可以使用传统的成员资格提供程序。问题#1当我使用internet应用程序模板创建MVC 4应用程序时,使用的成员资格提供程序是什么
回答:SimpleMembershipProvider
问题#2我对web.config文件有什么错?如何正确定义提供程序
答:对于SimpleMembershipProvider,不需要修改web.config文件。有关详细的配置/设置信息和教程,请参见此处:成员资格和安全性在ASP.Net中过于复杂,在ASP.Net MVC中仍然过于复杂。但幸运的是,完全可以不使用内置成员资格。我创建了simple solutione并在许多项目中使用,现在将其添加到github中,您可以轻松自定义它。您是否查看了ASP.NET simple会员资格?这里有一个很好的起点:我刚刚注意到我的控制器类有一个[InitializeSimpleMembership],它清楚地表明我在您发送给我的链接上使用simplemembership。它们显示了web.config文件如何定义提供程序,我刚刚将这些添加到了我的web.config中,并且只要我登录,我仍然会得到相同的o调用此方法“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例。我做错了什么?您尝试过启动“clean”吗“有简单的会员资格?这个线程可能会有帮助:当用户/成员需求很简单时,我通常自己实现一些东西。这是我第一个专业的web应用程序,我非常关心安全性,但对它没有深入的了解,自己实现它不是很危险吗?不使用像微软这样的公司提出的选项似乎是一个很大的折衷。就我的意见,你觉得怎么样?你能在机器上具体说明一下吗?这是干什么用的?谢谢你的回复!如果密码被加密或散列,成员资格提供程序将使用
machineKey
生成密码。如果您将应用程序移动到不同的服务器,如果未明确定义machineKey
,现有用户将无法再登录。非常感谢,我们将对此进行研究,但是我看到,在新的mvc 5中,他们更改了成员资格组件,而且似乎更易于使用,您看到了吗?是的,我看到了。WebMatrix提供程序比OWIN提供程序多。如果您正在从MVC4迁移到MVC5,您将花费一个小时或更多的时间来处理这些事情及其依赖关系,因为对于简单的事情来说,它们仍然太复杂。这就是为什么我创造了这个。它只为用户提供登录功能和非常简单的角色,不依赖于太空船。@Dmitry所有内容都与sampleproject一起保存在一个表中。对于小型应用程序来说,它是一个很好的模板。