Да, вы абсолютно можете использовать SqlMembershipProvider с Umbraco.Во-первых, вы должны добавить строку подключения в файл конфигурации.
<add name="umbracoDbDSN" connectionString="Server=myhost.myexampledomain.com;Database=mydatabasename;User Id=myuserid; Password=myhardtobreakpassword;" providerName="System.Data.SqlClient" />
Убедитесь, что имя пользователя и пароль для доступа к базе данных действительно обеспечат надлежащий доступ к Umbraco.
Во-вторых, вы должны убедиться, что поставщик данных SqlClient добавлен в раздел DbProviderFactoriessystem.data:
<add name="SqlClient Data Provider"
invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
В-третьих, вы должны добавить SqlServerMembershipProvider в раздел провайдеров:
<add name="SqlServerMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="umbracoDbDSN"
requiresQuestionAndAnswer="false"
applicationName="MyUniqueUmbracoApplication"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
Убедитесь, что строка соединения, на которую вы ссылаетесь от вашего провайдера, соответствует строке соединения, определенной вами ранееи присвойте приложению подходящее имя.
В-четвертых, добавьте SqlServerRoleProvider в раздел поставщиков roleManager:
<add name="SqlServerRoleProvider"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="umbracoDbDSN"
applicationName="MyUniqueUmbracoApplication"
/>
В-пятых, добавьте его в раздел поставщиков profie:
<add name="SqlProfile" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="umbracoDbDSN" applicationName="MyUniqueUmbracoApplication" />
В-шестых, запустите aspnet_regsql.exe в своей базе данных, чтобы настроить базу данных для использования SqlMembershipProvider ( Настройка базы данных с помощью aspnet_regsql.exe ).
Седьмое, перезапустите IIS послевыкатывая новый конфигурационный файл.Убедитесь, что IIS настроен для использования нового поставщика.
Вот еще один ресурс для настройки базы данных: Настройка ASP.NET SqlMembershipProvider .
Чтобы настроить разрешения для базы данных, вот инструкции: Настройка безопасности базы данных Umbraco .Важной частью является добавление пользователя для поставщика данных в:
- db_datareader
- db_datawriter
- db_ddladmin
- db_securityadmin
- public
Если ваш конфигурационный файл выглядит немного иначе, вы, вероятно, используете другую версию Umbraco.Я использую 7.0.3 для этого примера.