为自定义角色和成员资格提供程序设置配置文件会导致错误

时间:2014-04-23 12:11:45

标签: asp.net asp.net-mvc-4 web-config

我想在MVC4中使用自定义成员资格和角色提供程序。

所以我在配置文件中添加了一些代码,如下所示:

<membership defaultProvider="AspNetSqlMembershipProvider"> 
  <providers> <clear /> 
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="authentication" />

    </providers> 
    </membership>
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear/>
    <add name="CustomRoleProvider" 
       connectionStringName="authentication"
       enablePasswordRetrieval="false" enablePasswordReset="true" 
       requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false" />
  </providers>
</roleManager>

但是当我去**网站管理Too **添加角色时,我收到了这个错误:

The following message may help in diagnosing the problem: Sections must only appear once per config file. See the help topic for exceptions. (C:\Users\ehsan\Desktop\EducationModel\EducationMVC\web.config line 46)

1 个答案:

答案 0 :(得分:1)

您有多个单独定义的成员资格提供程序:

删除其中一个应该摆脱该错误。但是,如果您需要两个提供商,那么更新如下:

<membership defaultProvider="MembershipProvider2">
<providers>
<add name="MembershipProvider1" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
<add name="MembershipProvider2" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />  
</providers>
</membership>

此处,MembershipProvider2仅设置为defaultProvider。您可以使用默认情况下需要使用的任何提供程序来更新它。