ASPNETDB - как переключать поставщиков профилей на лету - PullRequest
0 голосов
/ 20 августа 2011

У меня есть веб-сайт, который использует ASPNETDB для членства / ролей / профилей. На веб-сайте есть несколько страниц администрирования, и я хочу добавить пару новых страниц, чтобы иметь возможность добавлять / редактировать / удалять пользователей для веб-сайта.

У меня есть две разные строки подключения для базы данных с разными разрешениями / уровнями безопасности.

Я хочу, чтобы один ("ASPNETDBConnection") использовался исключительно для процесса входа на веб-сайт и в других целях общего пользования для всех посетителей.

Я хочу, чтобы другой ("ASPNETDBConnectionAdmin") использовался для страниц добавления / редактирования / удаления для зарегистрированных пользователей.

Я не хочу создавать виртуальный каталог / приложение (не могу - не спрашиваю!).

Я понимаю, что хотя у меня может быть только один профиль, у меня может быть несколько провайдеров ...

Следующая информация взята из моего текущего файла web.config:

<system.web>
    <membership defaultProvider="AspNetSqlMembershipProvider">
        <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" connectionStringName="ASPNETDBConnection" applicationName="MyWebSite" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
            <add name="AspNetSqlMembershipProviderAdmin" connectionStringName="ASPNETDBConnectionAdmin" applicationName="MyWebSite" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
        </providers>
    </membership>
    <profile defaultProvider="AspNetSqlProfileProvider" enabled="true">
        <providers>
            <clear/>
            <add name="AspNetSqlProfileProvider" connectionStringName="ASPNETDBConnection" applicationName="MyWebSite" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            <add name="AspNetSqlProfileProviderAdmin" connectionStringName="ASPNETDBConnectionAdmin" applicationName="MyWebSite" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </providers>
    </profile>
    <roleManager defaultProvider="AspNetSqlRoleProvider" enabled="true">
        <providers>
            <clear/>
            <add name="AspNetSqlRoleProvider" connectionStringName="ASPNETDBConnection" applicationName="MyWebSite" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            <add name="AspNetSqlRoleProviderAdmin" connectionStringName="ASPNETDBConnectionAdmin" applicationName="MyWebSite" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </providers>
    </roleManager>
</system.web>

У меня вопрос, как мне поменять провайдера?

Как изменить провайдера членства со стандартного "AspNetSqlMembershipProvider" на альтернативного "AspNetSqlMembershipProviderAdmin" (динамически?) В коде для страниц добавления / редактирования / пользователя?

и др. Для поставщиков ролей и профилей.

Любая помощь в VB, а не C #, пожалуйста.

Большое спасибо ... Crimblepud

1 Ответ

0 голосов
/ 20 августа 2011

Crimblepud

Я пытался найти его, и даже пытался создать собственный профилировщик, но не понял, в промежутке я нашел несколько полезных ресурсов, проверьте его на

Код проекта в профиле

Механизм профиля

...