Asp.net 通过ObjectDataSource访问第二个MembershipProvider

Asp.net 通过ObjectDataSource访问第二个MembershipProvider,asp.net,vb.net,membership-provider,objectdatasource,Asp.net,Vb.net,Membership Provider,Objectdatasource,我有一个项目,需要访问第二个ASP.NET成员数据库,以便管理此数据库中的用户数据 我的方法是向web.config添加第二个连接字符串和第二个MembershipProvider:- <connectionStrings> ... <add name="MembershipWebUsers" connectionString="Data Source=xxx;Initial Catalog=xxx;Persist Security Info=T

我有一个项目,需要访问第二个ASP.NET成员数据库,以便管理此数据库中的用户数据

我的方法是向web.config添加第二个连接字符串和第二个MembershipProvider:-

<connectionStrings>
        ...
        <add name="MembershipWebUsers" connectionString="Data Source=xxx;Initial Catalog=xxx;Persist Security Info=True;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient"/>
</connectionStrings>



<membership defaultProvider="MembershipProvider">
     <providers>
         ...
         <add name="MembershipWebUsers" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MembershipWebUsers" applicationName="WebUsers" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" />
     </providers>
</membership>
而不是使用默认提供程序的
Membership.GetAllUsers()

以前的开发人员使用了
ObjectDataSource
来处理用户到
GridView
DetailsView
的绑定

<asp:ObjectDataSource ID="MemberData" runat="server" DataObjectTypeName="System.Web.Security.MembershipUser"
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetUser" TypeName="System.Web.Security.Membership"
        UpdateMethod="UpdateUser">
        <SelectParameters>
            <asp:QueryStringParameter Name="username" QueryStringField="username" />
        </SelectParameters>
    </asp:ObjectDataSource>  

但是,这将使用
DefaultProvider
。如何覆盖或创建自己的
ObjectDataSource
,以查看我在
web.config
中配置的特定提供程序,以及需要手动实现哪些方法


我需要能够通过
ObjectDataSource

在特定的提供者中对用户进行CRUD,ObjectDataSource不知道任何关于成员资格的具体信息。它只是在成员类上使用静态GetUser方法,因为它被声明为ODS的一个参数。不幸的是,GetUser方法没有重载,重载将以提供者名称作为输入。您所能做的就是在您将创建的另一个类上实现它,并在这个类上指导ODS。@SimonMourier是的,我通过在成员类上使用DotPeek解决了这个问题。我最终把自己的目标对准了一家特定的供应商。
<asp:ObjectDataSource ID="MemberData" runat="server" DataObjectTypeName="System.Web.Security.MembershipUser"
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetUser" TypeName="System.Web.Security.Membership"
        UpdateMethod="UpdateUser">
        <SelectParameters>
            <asp:QueryStringParameter Name="username" QueryStringField="username" />
        </SelectParameters>
    </asp:ObjectDataSource>