Asp.net mvc 4 使用SimpleMembershipProvider时找不到默认角色提供程序

Asp.net mvc 4 使用SimpleMembershipProvider时找不到默认角色提供程序,asp.net-mvc-4,roleprovider,Asp.net Mvc 4,Roleprovider,我试图在asp.net mvc4上获得授权,所以我尝试使用WebSecurity WebSecurity.InitializeDatabaseConnection("tradefairindia", "Users", "Id", "Username", false); 我已经将其放入Global.asax中,这就是错误出现的地方,“找不到默认角色提供程序” 在互联网上,我读到我必须将这行代码添加到我的web.config。但由于之前的错误,我已经添加了它 我如何解决这个问题 编辑: 当我将其更

我试图在asp.net mvc4上获得授权,所以我尝试使用WebSecurity

WebSecurity.InitializeDatabaseConnection("tradefairindia", "Users", "Id", "Username", false);
我已经将其放入Global.asax中,这就是错误出现的地方,“找不到默认角色提供程序”

在互联网上,我读到我必须将这行代码添加到我的web.config
。但由于之前的错误,我已经添加了它

我如何解决这个问题

编辑:

当我将其更改为
defaultProvider=“SimpleRoleProvider”
时,它会给我一个新的错误。上面说

命名空间“WebMatrix”中不存在类型或命名空间名称“Data”(是否缺少程序集引用?)


我通过将
defaultProvider
更改为
SimpleRoleProvider
来修复它。通过添加Webmatrix.data作为引用,并转到其属性并将copy local设置为true,我修复了第二个错误。我不知道这是怎么解决的,如果有人能详细说明的话,那就太好了

以下是我的web.config,供遇到相同问题的人使用:

<system.web>
    //...
    <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <clear />
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="SimpleRoleProvider">
      <providers>
        <clear />
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
      </providers>
    </roleManager>
    //...
</system.web>

//...
//...

别忘了接受自己的答案。这应该会帮助很多人。您可以选择任何名称,如
defaultProvider=“MyRoleProvider”
,只要名称与
部分中的名称相对应。在这里,您可以指定实际使用的库。因此,在
中,您表示希望使用WebMatrix.WebData库中的SimpleRoleProvider,并将其称为“MyRoleProvider”。如果未将“复制本地”设置为True,则在编译时,WebMatrix.WebData.dll将不会复制到bin文件夹。因为默认情况下它不是GAC的一部分,所以程序集找不到它。