ASPNETDB - 如何动态切换配置文件提供程序

时间:2011-08-20 03:15:15

标签: membership profile provider aspnetdb

我有一个使用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 :(得分:0)

Crimblepud

我试图在其上搜索,甚至我尝试制作自定义分析器,但没有得到这个想法,在我找到一些有用的资源之间,检查它

Code Project on Profile

Profile Mechanism