В итоге я не использовал SimpleMembership
и просто пошел с Membership
. Я не мог получить адаптер, который ссылается на ссылку thecodeking
.
Этот метод не документирован надлежащим образом. Мне просто пришлось менять конфигурационные файлы. Я сделал не необходимо создать собственный класс, который наследуется от MembershipProvider
.
Веб.конфиг:
В membership
разделе,
- изменение
realProviderName
в "switcher"
- копия
"sql"
узла и изменить имя и connectionStringName в "external"
В switchingProviders
разделе
- добавить
"external"
узел с доменами "external"
web.config:
<membership defaultProvider="sitecore" hashAlgorithmType="SHA1">
<providers>
<clear />
<!-- change realProviderName to "switcher" -->
<add name="sitecore"
type="Sitecore.Security.SitecoreMembershipProvider, Sitecore.Kernel"
realProviderName="switcher"
providerWildcard="%"
raiseEvents="true"
/>
<add name="sql"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="core"
applicationName="sitecore"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="256"
/>
<add name="switcher"
type="Sitecore.Security.SwitchingMembershipProvider, Sitecore.Kernel"
applicationName="sitecore"
mappings="switchingProviders/membership"
/>
<!-- copy "sql" node and change name and connectionStringName to "external" -->
<add name="external"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="external"
applicationName="sitecore"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="256"
/>
</providers>
</membership>
<switchingProviders>
<membership>
<provider providerName="sql" storeFullNames="true" wildcard="%" domains="*" />
<!-- add "external" node with domains "external" -->
<provider providerName="external" storeFullNames="true" wildcard="%" domains="external" />
</membership>
</switchingProviders>
ConnectionStrings.config:
- добавить соединение
"external"
конфигурации:
<add name="external" connectionString="..." providerName="System.Data.SqlClient"/>
Domains.config:
- добавить домен
"external"
конфигурации:
<domain name="external" ensureAnonymousUser="false" />
Затем используйте "external"
поставщика напрямую, что экономит пользователь до external
дБ. Это ключевой пункт.
// uses "external" provider directly
Membership.Providers["external"].CreateUser(...)
Вместо этого это экономит до core
дБ.
// uses default provider
Membership.CreateUser(...)
Я хочу повторно использовать логику AccountController, которую дает шаблон проекта MVC. Я следовал за сообщением, и я получаю ниже исключения. Могу ли я использовать SimpleMembershipProvider с Sitecore 8? Исключение: 'Чтобы вызвать этот метод, свойство« Membership.Provider »должно быть экземпляром« ExtendedMembershipProvider ». ' – hIpPy
Похоже, что это должен быть ExtendedMembershipProvider. Это может помочь - http://www.thecodeking.co.uk/2013/11/using-simplemembershipprovider-with.html#.VUXaU9q9KK0 –
Как предположил xoail, существуют другие более простые способы аутентификации, и я бы рассмотрел каждую из варианты против ваших требований перед вспашкой вперед с поставщиком членства. https://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2011/08/authentication-options-with-the-sitecore-aspnet-cms.aspx –