Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.net MVC 4用户和角色管理(“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例)_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# ASP.net MVC 4用户和角色管理(“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例)

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个主要选项可供选择: 默认成员资格提供者(我对其一无所知) 通用供应商

我花了两天的时间想让它工作起来,但到目前为止毫无意义。我需要的是管理用户及其角色,而不是其他

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

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

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

  • 默认成员资格提供者(我对其一无所知)
  • 通用供应商
  • 简单记忆
我发现这个教程:

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

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

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

据本论坛报道:

这是因为我在web.config文件中定义了配置文件、成员资格和角色管理器提供程序,该文件定义如下:

<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一起保存在一个表中。对于小型应用程序来说,它是一个很好的模板。