We have a database of ASP.net sqlMembershipProvider based users on an Azure SQL database. It has become apparent that the out of the box sqlMembershipProvider 4.0 does not have the required retry logic for Azure SQL connections which can drop out due to throttling or can expire.
It is possible to implement our own membership provider that has this functionality but it would have to be exactly the same database interactions as the standard sqlMembershipProvider 4.0 in order to work with the existing users in our database. However for that it would require looking into the source of the original sqlMembershipProvider 4.0, this code has not been released into the open since version 2.0 so my question is:
What is the lowest effort way to get retry logic into the sqlMembershipProvider? And or would that be reflecting the code of sqlMembershipProvider 4.0 in System.web.security.sqlMembershipProvider and creating a custom membershipProvider that has the same functionality as the sqlMembershipProvider but uses retry logic such as that of Microsofts TransientFaultHandling ReliableSqlConnection? Would it be legal to do such a thing (reflecting and creating similar code but with added functionality) given Microsoft's license for asp.net libraries eg. System.Web?