移除asp.net会员和角色提供程序

28

由于某些原因,我正在处理的网站(停顿了一段时间后)开始出现有关 asp.net 成员身份验证的 sql server 连接问题。我正在使用 mysql 而不是 asp.net 成员资格验证,所以这很奇怪。不过为了确保,我决定删除与之相关的任何内容,包括角色提供程序。

我已将以下内容添加到 web.config 文件中:

 <membership>
      <providers>
          <clear />
      </providers>
  </membership>
  <roleManager enabled="false">
      <providers>
          <clear />
      </providers>
  </roleManager>
  <profile enabled="false">
      <providers>
          <clear />
      </providers>
  </profile>

然而,它仍然会抛出异常:“配置错误,找不到默认角色提供程序。” 我该怎么办?

1个回答

48

我认为我找到了缺失的部分:我还需要删除RoleManager模块。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
        <remove name="RoleManager" />
    </modules>
</system.webServer>

+1 谢谢!真麻烦。在 IIS 8 上,成员资格、角色管理器和配置文件似乎都预设在 machine.config 文件中了。 - Chuck Conway
1
+1 这对我也起作用了。有趣的是,在我升级到 MVC4 生产环境之前,这从未成为问题。有人知道为什么突然出现这个问题吗? - Tri Q Tran
RoleManager模块是通过默认安装嵌入到我的机器级web.config中的。像上面那样删除它可以解决在自定义角色时出现的问题。 - John Culviner
感谢您。3个小时不知道为什么我的网站失败,最终发现ClaimsPrincipal.Current有一个roleprovider创建了一个外部角色,导致网站在未配置的SQL数据库上超时。以前从未自己删除过RoleManager。 - Poul K. Sørensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接