Jak dodać logikę ponawiania do dostawcy członkostwa ASP.NET dla Azure SQL?

Mamy bazę danych użytkowników ASP.net sqlMembershipProvider w bazie danych Azure SQL. Stało się oczywiste, że out of the box sqlMembershipProvider 4.0 nie ma wymaganej logiki ponownej próby dla połączeń SQL Azure, które mogą upaść z powodu ograniczania przepustowości lub mogą wygasnąć.

Możliwe jest zaimplementowanie naszego własnego dostawcy członkostwa, który ma tę funkcjonalność, ale musiałyby być dokładnie takie same interakcje z bazą danych, jak standardowy sqlMembershipProvider 4.0, aby współpracować z istniejącymi użytkownikami w naszej bazie danych. Jednak z tego powodu wymagałoby to spojrzenia na źródło oryginalnego sqlMembershipProvider 4.0, ten kod nie został wydany do wersji otwartej od wersji 2.0, więc moje pytanie brzmi:

Jaki jest najtańszy sposób na uzyskanie logiki ponownej próby do sqlMembershipProvider? I czy byłoby to odzwierciedlające kod sqlMembershipProvider 4.0 w System.web.security.sqlMembershipProvider i tworzenie niestandardowego memberProvider, który ma taką samą funkcjonalność jak sqlMembershipProvider, ale używa logiki ponownej próby, takiej jak Microsoft TransientFaultHandling ReliableSqlConnection? Czy byłoby legalne zrobienie czegoś takiego (odzwierciedlenie i stworzenie podobnego kodu, ale z dodaną funkcjonalnością), biorąc pod uwagę licencję Microsoftu na biblioteki asp.net, np. System.Web?

questionAnswers(1)

yourAnswerToTheQuestion