【发布时间】:2011-11-04 20:23:38
【问题描述】:
在我的 asp.net 应用程序管理功能中,我试图结合 AD 身份验证和表单授权来创建用户、角色和将用户分配给角色等。我已经在我的 web.config 中配置了 MembershipADProvider 和 AspNetSqlMembershipProvider,其中 MembershipADProvider 作为默认一个。用户使用 AD 身份验证登录后,我需要切换/分配我的成员资格对象以使用 AspNetSqlMembershipProvider 以便从成员资格对象(来自 dbo.aspnet_Users 表)中获取所有用户。如何在运行时切换提供程序?搜索此问题后,我尝试了不同的方法,但到目前为止,这些方法似乎都不适合我。
以下是我尝试的几种方法:
1. foreach(MembershipProvider mp在Membership.Providers)
{
if (mp.Name == "MembershipADProvider")
{
Membership.Providers.Remove(MembershipADProvider");
MembershipUserCollection 用户 = Membership.GetAllUsers();
ddlUsers.DataSource = 用户;
ddlUsers.DataBind();
休息;
}
}
Membership.Providers.Remove(MembershipADProvider"); - 不起作用,因为它不受支持.. 另外,尝试清除 Membership.Providers,然后只添加同样不受支持的 AspNetSqlMembershipProvider 类型。
我无法设置 Membership.Provider 的值来自 Membership.Providers["AspNetSqlMembershipProvider"] as Membership.Provider 是只读属性。
-
我尝试在 2 个提供程序之间切换连接字符串,但没有切换提供程序,因为两者都是不同类型的提供程序。如果两者都是 sqlserver 提供程序,我相信这会起作用。
请让我知道是否有人已成功实施,或者这是否是一种合理的方法。谢谢!
【问题讨论】:
标签: asp.net membership provider