May.11

MySQL ODBC Membership- en RoleProvider

Sinds ASP.NET 2.0 is Visual Studio voorzien van speciale toegangs-controls. Het maken van een met wachtwoorden en rollen beveiligde site wordt wel heel makkelijk. Het enige nadeel (voor mij) is dat de default Providers voor toegang, de MembershipProvider en RoleProvider, zijn ge-ent op SQL Server. Mijn huidige hoster ondersteund echter alleen MySQL via ODBC DSN’s. Na wat zoeken ontdekte ik op codeproject.com een MySQL MembershipProvider en RoleProvider. Deze maakt echter gebruik van de MySQL .NET Connector en die ondersteund mijn huidige hoster niet. Nog wat verder zoeken leerde me dat Microsoft een ODBC voorbeeld heeft van de MembershipProvider en de RoleProvider. Deze zijn overigens ook terug te vinden in de MSDN documentatie van Visual Studio 2005.

Aangezien het genoemde ODBC voorbeeld uitgaat van een MS Access database (hoe kan het ook anders als je Microsoft bent) waren de 2 providers niet direct klaar voor gebruik. Zo heb ik een aantal aanpassingen gemaakt voor de PKID (ProviderUserKey) en een Boolean database velden. De PKID is van origine een GUID die niet als zodanig via MySQL kan worden opgeslagen. Binnen de provider is dit gewoon een GUID gebleven maar wordt opgeslagen in een varchar veld binnen MySQL. De boolean velden zijn omgezet binnen MySQL naar een TinyInt met de waarde 1 (true) of 0 (false). Daarnaast heb ik diverse casts vervangen zoals:

naar

De ODBC MySQL Role- en MembershipProvider kun je hier (membership.zip) downloaden.

Op de MySQL server moet het volgende script worden gedraaid. Het is handig om hiervoor een aparte database te kiezen:
MembershipTableScript.txt

De web.config moet als volgt worden aangepast:
webconfig.txt

Overigens is hier ook nog een leuke toepassing te vinden van een op een webservice gebaseerde MembershipProvider en RoleProvider. De gegevens van de gebruikers worden opgehaald en opgeslagen via een webservice.

Deel dit Verhaal:
  • facebook
  • twitter
  • gplus

Over Ton Snoei

Een enthousiaste ontwikkelaar in de allerbreedste zin van het woord.

Het aansturen maar vooral coachen van mensen geeft me veel plezier en een leuke uitdaging. Ik houdt me graag bezig met het bouwen van software maar ook met alle anderen dingen die komen kijken bij het vak dat IT heet.

Met als achtergrond ontwikkelaar heb ik veel ervaring met C# .NET en alles wat daarbij komt kijken. Deze kennis komt nog regelmatig goed van pas. Mijn liefde voor ontwikkeling van software is nooit verdwenen en heb mij daarom in het afgelopen jaar meer verdiept in Java, Android, iOS/iPhone/iPad (Monotouch/Xamarin), PHP en Unity 3D development. Ik noem dat altijd maar: "Lego-spelen voor grote mensen" ;-)

Kortom van de grote lijnen naar projecten tot hands-on problem solven.

Reacties(1)

  1. Antrophy
    5302 days geleden

    Dat is nog eens handig. Bedankt voor het beschikbaar stellen van de providers, ik zal het binnenkort eens uitproberen.

Laat een reactie achter

Comment