¿Cómo agregar la lógica de reintento al proveedor de membresía ASP.NET para Azure SQL?

Tenemos una base de datos de usuarios de ASP.net sqlMembershipProvider en una base de datos SQL de Azure. Se ha vuelto evidente que el proveedor de instalación sqlMembershipProvider 4.0 no tiene la lógica de reintento requerida para las conexiones SQL de Azure, que pueden abandonar debido a la limitación o pueden caducar.

Es posible implementar nuestro propio proveedor de membresía que tiene esta funcionalidad, pero tendría que ser exactamente las mismas interacciones con la base de datos que el estándar sqlMembershipProvider 4.0 para poder trabajar con los usuarios existentes en nuestra base de datos. Sin embargo, para eso sería necesario buscar en la fuente del sqlMembershipProvider 4.0 original, este código no se ha publicado desde la versión 2.0, por lo que mi pregunta es:

¿Cuál es la forma de menor esfuerzo para obtener la lógica de reintento en el proveedor de sqlMembershipProvider? ¿Y o eso estaría reflejando el código de sqlMembershipProvider 4.0 en System.web.security.sqlMembershipProvider y creando un MembershipProvider personalizado que tiene la misma funcionalidad que el sqlMembershipProvider pero usa una lógica de reintento como la de Microsofts TransientFaultHandling ReliableSqlConnection? ¿Sería legal hacer tal cosa (reflejando y creando un código similar pero con una funcionalidad adicional) dada la licencia de Microsoft para las bibliotecas asp.net, por ejemplo? System.Web?

Respuestas a la pregunta(1)

Su respuesta a la pregunta