MVC 5 自定义成员资格提供程序配置

MVC 5 Custom Membership Provider Configuration

我正在尝试将 ASP.NET 应用程序迁移到 MVC 5。最后要迁移的部分是成员资格提供程序。我无法配置应用程序以访问现有的成员资格提供商。

我首先查看了 MSDN Sample Membership Provider Implementation 上的文档。这导致我在 Web.config 中输入以下内容:

<membership defaultProvider="MyMembershipProvider">
  <providers>
    <clear />
    <add
      name="MyMembershipProvider"
      type="my.namespace.MyMembershipProvider, my.package.name"
      connectionStringName="MyServiceContext"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false"
      writeExceptionsToEventLog="true"
      />
  </providers>
</membership>
<roleManager defaultProvider="MyRoleProvider">
  <providers>
    <clear />
    <add
      name="MyRoleProvider"
      type="my.namespace.MyRoleProvider, my.package.name"
      />
  </providers>
</roleManager>

当我尝试 运行 应用程序时,出现以下错误:

The configuration section 'membership' cannot be read because it is missing a section declaration

我可能做错了什么?

哦!

结果我把 <membership> 标签放在顶级 <configuration> 部分,但它属于 <system.web>:

<configuration>
  ... stuff ...
  <system.web>
    <membership ...>
      ... stuff from question description ...
    </membership>
    <roleManager ...>
      ... stuff from question description ...
    </roleManager>
  </system.web>
</configuration>

更改文件中的位置修复了错误。