针对多个片状会员提供商进行身份验证?

时间:2012-08-15 04:03:08

标签: c# asp.net membership-provider

目前我的asp.net应用程序有5个ActiveDirectoryMembershipProvider和1个SqlMembershipProvider。这两个数字必然会在不久的将来增加至少一些。问题是我们正在验证的一些域名是不稳定的。因此,例如,在周日的30分钟中,其中一个可能无法访问。当来自任何提供程序的用户尝试在此期间登录时,他们无法执行此操作,因为Providers集合会引发错误。所以如果一个人失败了,他们都会失败。不好玩。

我尝试了大约72种不同的方法来解决这个问题并且没有任何运气。这是我的前3名。

1:在web.config中添加所有内容,覆盖登录控制身份验证并遍历所有Membership.Providers。在我们匹配之前验证用户。除非上述问题,否则效果很好。如果一个人失败了,那么这个集合就会消失,没有人进入。

B中。仅对默认提供程序进行身份验证让用户选择要使用的提供程序,并使用WebConfigurationManager将其更改为默认提供程序。非常棒,除了你实际上是在运行时更改web.config文件...哎呀!我这样做了吗?

III。检查域用户想要登录的自定义提供程序,并在Initiate()中从web.config以外的源提供适当的配置值。数据库表包含所有单独的提供者信息。然后我们总是在自定义提供程序上验证ValidateUser,然后检查用户选择的域/提供程序,插入和关闭信息我们去。除非我注销然后使用diff域登录,否则这样做有效...我不能这样做,因为它已经初始化为您之前选择的其他域。

也许我错过了一些简单的事情?希望如此。 StackOverflow,你是我唯一的希望。

0 个答案:

没有答案
相关问题