0

я получил сообщение об ошибкеASP.NET web.config Не удалось найти указанного поставщика членства

Не удалось найти указанного поставщика членства

Вот мои настройки web.config:

<connectionStrings> 
<add name="MyConnectionString" connectionString="Data Source=MyHostName;Initial Catalog=MyDB;User ID=userid;Password=*****" providerName="System.Data.SqlClient" /> 
    <add name="ADConnectionString" connectionString="LDAP://demo.stl.local/DC=stl,DC=local"/> 
</connectionStrings> 
    <system.web> 

    <customErrors defaultRedirect="~/error.aspx"/> 

    <siteMap defaultProvider="default"> 
     <providers> 
      <clear/> 
      <add name="default" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/> 
     </providers> 
    </siteMap> 

    <roleManager enabled="true" defaultProvider="SqlRoleManager"> 
     <providers> 
      <add connectionStringName="MyConnectionString" applicationName="MyAppDemo" name="SqlRoleManager" type="System.Web.Security.SqlRoleProvider"/> 
         </providers> 

     <membership defaultProvider="MyADMembershipProvider"> 
      <providers> 
       <add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName"/> 
      </providers> 
     </membership> 

Я пытаюсь использовать членство ASP.NET с аутентификацией ActiveDirectory. Аутентификация с AD работала нормально, пока я не добавил еще одну строку подключения и roleManager. Итак, что случилось с этой настройкой?

спасибо.

ответ

1

Ну, Membership узел находится на том же уровне, что и providers, может быть, вы должны просто закрыть с </providers> перед тем <membership>.

Также membership должен быть отделен от roleManager.

<roleManager enabled="true" defaultProvider="SqlRoleManager"> 
    <providers> 
     <add connectionStringName="MyConnectionString" applicationName="MyAppDemo" name="SqlRoleManager" type="System.Web.Security.SqlRoleProvider"/> 
    </providers> 
</roleManager> 

<membership defaultProvider="MyADMembershipProvider"> 
    <providers> 
     <add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName"/> 
    </providers> 
</membership> 
+0

К сожалению, это была моя опечатка, я просто добавил к этот вопрос. Это здесь с web.config –

+0

Хорошо, я проверял и членство не должно быть внутри roleManager, они оба являются отдельными узлами. – mbillard

3

Менеджер роли не закрыт

<roleManager enabled="true" defaultProvider="SqlRoleManager"> 
     <providers> 
      <add connectionStringName="MyConnectionString" applicationName="MyAppDemo" name="SqlRoleManager" type="System.Web.Security.SqlRoleProvider"/> 
         </providers> 

     <membership defaultProvider="MyADMembershipProvider"> 
//here 
</roleManager>