使用SimpleMembershipProvider时找不到默认角色提供程序

时间:2013-07-31 20:12:59

标签: asp.net-mvc-4 roleprovider

我正在尝试使用asp.net mvc4进行授权,所以我尝试使用WebSecurity。

WebSecurity.InitializeDatabaseConnection("tradefairindia", "Users", "Id", "Username", false);

我把它放到Global.asax中,这就是错误发生的地方,“无法找到默认角色提供程序”。

在互联网上,我读到我必须将这行代码添加到我的web.config <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">。但由于以前的错误,我已经添加了它。

如何解决此问题?

修改

当我将其更改为defaultProvider="SimpleRoleProvider"时,它会给我一个新错误。它说

  

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

1 个答案:

答案 0 :(得分:18)

我通过将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>