MySql ile ASP.net Membership Kullanmak

MySQL ile asp.net membership kullanmak istediğinizde ya hazır bir provider yada kendi yazdığınız provider kullanmak zorunda kalırsınız. Oysaki mysql’in kendi .net için connector’ı asp.net membership’i tam olarak tüm özellikleri (roles,profiles) ile desteklemekte.
MySql ile birlikte asp.net membership’i kullanmak için henüz yüklemedi iseniz. MySql .net connector’ü buradan yükleyin.
Visual Studio’da website projenize (Web Site, MVC farketmez.) aşaıdaki kütüphaneleri reference olarak ekleyin.
- MySql.Data
- MySql.Data.Entity
- MySql.Web
Bu dll dosyaları Connector’i kurduğunuz yerde. Eğer değiştirmedi iseniz Program Files altında \MySQL\MySQL Connector Net 6.4.4\Assemblies klasörüne bakın.
Projeni .net framework’üne size uygun klasörden seçimi yapın.
Her seçtiğiniz referansın özelliklerinde (properties) Copy Local özelliğini true seçin.

(Bu işlemi yapma nedenimiz referans aldığımız kütüphane nerede olursa olsun artık projemize dahil olacak ve projemizi taşıdığımızda sorun yaşamayacağız, bunu başka yerlerdede kullanabilirsiniz.)
Projenizin web.config’ini açın.
Öncelikle aşağıdaki connection string’i ekleyin.
<remove name="LocalMySqlServer"/>
<add name="LocalMySqlServer"
connectionString="Datasource=localhost;Database=databaseadi;uid=tomp;pwd=sifre;"
providerName="MySql.Data.MySqlClient"/>
Daha sonra aşağıdaki provider bilgilerini ekleyin. Buradaki püf nokta aşağıdaki membership provider’inda göreceğiniz autogenerateschema="true" Bu sayede database’inizde gerekli olan tablolar otomatik olarak açılacak.
<membership defaultProvider="MySqlMembershipProvider">
<providers>
<clear/>
<add name="MySqlMembershipProvider"
type="MySql.Web.Security.MySQLMembershipProvider,MySql.Web,Version=6.4.4.0, Culture=neutral,PublicKeyToken=c5687fc88969c44d"
autogenerateschema="true" connectionStringName="LocalMySqlServer"
enablePasswordRetrieval="false" enablePasswordReset="true"
requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
passwordFormat="Hashed" maxInvalidPasswordAttempts="55"
minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10" passwordStrengthRegularExpression=""
applicationName="/" />
</providers>
</membership>
<profile defaultProvider="MySqlProfileProvider">
<providers>
<clear/>
<add name="MySqlProfileProvider"
type="MySql.Web.Profile.MySQLProfileProvider,MySql.Web,Version=6.4.4.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"
connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</profile>
<roleManager enabled="true" defaultProvider="MySqlRoleProvider">
<providers>
<clear />
<add name="MySqlRoleProvider"
type="MySql.Web.Security.MySQLRoleProvider,MySql.Web,Version=6.4.4.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"
connectionStringName="LocalMySqlServer" applicationName="/" />
</providers>
</roleManager>

Yukarıdaki eklemeleri yaptıktan sonra, Solution Explorer panelinde ASP.NET Configuration ile Web Site Administration Tool’u açın.

Açılan pencerede Security’e tıkladığınızda mysql database’inizde tablolarda açılmış olacak.

Artık mysql ile asp.net membership’i güle güle kullanın, afiyet olsun 