我有一个项目,我需要访问第二个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.Providers("WebMembershipProvider").GetAllUsers(0, 50, totalRecords)
而不是使用默认提供商的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特定提供商中的用户。