我们在 Azure SQL 数据库上有一个基于 ASP.net sqlMembershipProvider 的用户数据库。很明显,开箱即用的 sqlMembershipProvider 4.0 没有 Azure SQL 连接所需的重试逻辑,这些连接可能由于限制而退出或过期。
可以实现我们自己的具有此功能的成员资格提供程序,但它必须与标准 sqlMembershipProvider 4.0 完全相同的数据库交互才能与我们数据库中的现有用户一起工作。但是,为此需要查看原始 sqlMembershipProvider 4.0 的源代码,此代码自 2.0 版以来尚未公开发布,所以我的问题是:
将重试逻辑放入 sqlMembershipProvider 的最省力的方法是什么?或者这会反映 System.web.security.sqlMembershipProvider 中的 sqlMembershipProvider 4.0 的代码,并创建一个与 sqlMembershipProvider 具有相同功能但使用重试逻辑(例如 Microsoft 的 TransientFaultHandling ReliableSqlConnection)的自定义 membersProvider?考虑到微软对 asp.net 库的许可,做这样的事情(反映和创建类似的代码但具有附加功能)是否合法。系统.Web?