Bu yazım da Asp.net Membership ile üyelik yönetim sisteminin kurulumunu Sql Server üzerinden uygulamalı olarak resimlerle anlatmaya çalışacağım.
Öncelikle uygulamamızda kullanacağımız bir veritabanı oluşturuyoruz.
Veritabanı oluştururken Visual Studio ile birlikte entegre olarak gelen Sql Server veritabanını kullanabilirsiniz yada bilgisayarınızda ayrı bir sql server kurulu ise Management Studio üzerinden yeni bir veritabanı oluşturarak onu da kullanabilirsiniz. Biz yazımızda veritabanı işlemlerini Sql Server 2012 Management Studio üzerinden gerçekleştireceğiz.
Sql Server’a bağlantıktan sonra üyelik sistemi için daha önce oluşturduğunuz veritabanını kullanabileceğiniz gibi, yeni bir veritabanı da oluşturabilirsiniz. Ben veritabanımı “uyelik” ismiyle oluşturdum.
Şimdide sırada veritabanına gerekli olan tabloları, viewleri ve stored procedure’ları kurmakta. İşte burada güzel bir araç karşımıza çıkıyor. Hiçbir tabloyu, viewi ve proceduru elimizle yazmıyoruz. Hepsini Microsoft’un hazırlamış olduğu aspnet_regsql programı bizim için yapıyor. Programı aşağıdaki yolu takip ederek çalıştırıyoruz. Tabi sizde 2010 yada 2008 varsa ona uygun olacak şekilde yolu takip etmeniz gerekir.
Başlat–> Tüm Programlar–> Microsoft Visual Studio 2012–> Visual Studio Tools–> Developer Command Prompt for VS2012 açılan komut satırına aspnet_regsql yazıyoruz. Karşımıza aşağıdaki gibi bir veritabanı kurulum ekranı çıkıyor.
Bu ekranda asp.net server kurulum sihirbazı ekrana geliyor. Bende İngilizce olarak geldi sizin dil ayarlarınıza göre Türkçe olarak ta gelebiliyor. Next deyip adım adım ilerliyoruz.
Bu ekranda veritabanı kurulumunu yapabiliyoruz yada hazırda kurulu olan veritabanını silebiliyoruz. Biz kurulum işlemi yapacağımız için üstteki seçeneği işaretledik ve next diyerek diğer adıma geçtik.
Bu ekran bizim sunucu ve veritabanı ayarlarımızın yapıldığı yer. Bilgisayarımızda halihazırda sql server kuruluysa Burda server ismi otomatik gelecektir. Servera ne şekilde bağlanacağınızı gösteren 2 seçenek var 1.seçenek Windows yerleşik kimlik doğrulaması şifre gerektirmez. 2.seçenek sqlserver kurulurken belirlediğiniz şifreyle bağlantı sağlayan sqlserver kimlik doğrulama seçeneği size uygun olanı seçin. En altta hangi veritabanına kurulum yapacaksanız onu seçmenizi istiyor biz ekranda görüldüğü gibi “uyelik” isminde veritabanını oluşturmuştuk seçeneklerden bunu seçiyoruz ve next deyip ilerliyoruz.
Bu ekran bize kurulumla ilgili özet bilgi veriyor next- finish deyip kurulum sihirbazını kapatıyoruz.
Kurulumun başarılı olup olmadığını veritabanımızı açarak içerisindeki tabloları gördüğünüzde anlayabiliyorsunuz. Veritabanı tablolarınızın aşağıdaki ekran görüntüsü gibi olması gerekiyor .
Veritabanı oluşturma işlemini hallettik şimdi ise web projemizde ki ayarlamalara ve projemizde üyelik sistemini nasıl kullanacağımıza geçelim.
Yeni bir web-sitesi oluşturuyoruz. Websitemizde web.config dosyamızı açıyoruz. Buraya bazı kodları eklememiz gerekiyor. Bu kodları neye göre ekliyoruz ona gelelim. Web.config dosyasında kullanabileceğimiz tüm kodlar aslında machine.config dosyasından geliyor. Web config doyasında yaptığımız her değişiklik machine.config dosyasını ezer bunuda unutmuyoruz.
Şimdi gelelim kodları eklemeye: Web.config dosyamızda ki <system.web> düğümünün altına veritabanımıza bağlantı kuracak olan <connectionstring> düğümünü ekliyoruz. Yanlış yere eklerseniz altını çizecektir buna dikkat edin. Aşağıdaki kodu ekliyoruz.
1 2 3 4 5 6 7 |
<connectionStrings> <add name="baglanti" connectionString="Server=KUTLAY-;Database=uyelik;Uid=sa;Password=*****;" providerName="System.Data.SqlClient"/> </connectionStrings> |
Şimdi ise üyelik sistemi için gereken kodları <system.web> düğümü içerisine kopyalıyoruz. Bu kodları nerden bulduk derseniz. Machine.config dosyasından aldık.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<membership defaultProvider="MembershipProvider" userIsOnlineTimeWindow="5"> <providers> <add name="MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="baglanti" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="AspnetMembership" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> </providers> </membership> <roleManager enabled="true" defaultProvider="SqlRoleProvider"> <providers> <add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="baglanti" applicationName="AspnetMembership"/> </providers> </roleManager> |
Bu kodlarda dikkat ederseniz 2 adet düğüm var.
1.düğüm–Membership provider: Üyelik sistemi sağlayıcısı bu kısımda aşağıdaki ayarlamalar yapılıyor.
connectionStringName=“baglanti” : Aşağıda oluşturduğumuz connectionstringin ismi
enablePasswordRetrieval=“false” : Şifrenizi kaybettiğinizde aynı şifreyi isteyebilme
enablePasswordReset=“true” : Şifreyi kaybettiğinizde resetleyip yeni şifre isteme
requiresQuestionAndAnswer=“true” : Gizli soru ve cevabı sorma-isteme
applicationName=“AspnetMembership” : Site açarken kullandığımız uygulamamızın ismini yazıyoruz.
requiresUniqueEmail=“true” : Aynı epostayla üyelik almayı engelliyor
passwordFormat=“Hashed” : Şifreyi veritabanına şifreleyerek kaydeder.
maxInvalidPasswordAttempts=“5” :Yanlış şifre giriş sayısı
minRequiredPasswordLength=“6” : Şifre uzunluğu
minRequiredNonalphanumericCharacters=“0” : Şifrede harf kullanım sayısı
passwordAttemptWindow=“10” : Şifre sorma ekranının kaç kere gösterileceği
passwordStrengthRegularExpression=“” : Şifreyi belirli formatta girmek istersek
2.düğüm–Role Manager Provider: Üyelikte kullanacağımız rollerin belirlendiği bölüm bu kısımda fazla bir ayar yapamayacağız sadece connectionStringName ve applicationName kısmını düzelttiğinizden emin olun.
Evet eğer gösterildiği gibi ayarları yaptıysanız herhangi bir problem yaşamadan diğer adıma geçebiliriz.
Şimdi Menü çubuğundan WebSite oradan ASP.NET Configuration a tıklıyoruz. Aşağıdaki ekranda görüldüğü gibi.
Bu kısımda bir web sayfası açılacak eğer açılan web sayfasında Security kısmına tıkladığınızda herhangi bir hata mesajı almıyorsanız işlem tamamlandı demektir. Bu kısımda eğer hata aldıysanız web.config dosyasındaki connectionstringi yazarken hata yapmışsınız demektir. Buna dikkat edin.
Membership üyelik sistemi tamamlandı. Toolbox’daki üyelikle ilgili nesneleri artık sorunsuzca kullanabilirsiniz. Role Yönetimi işlemlerinin nasıl yapılacağını ayrıntılı şekilde Asp.Net Membership ile Rol Yönetimi makalesinde anlatacağım.
Herkese kolay gelsin.
Çok güzel detaylı bir anlatım olmuş.Rol yönetimi makalenizi bekliyorum.
Hocam bu makalen cok guzel ve verimli olmuş. Rol yonetimini anlatacagını soylemıssin ama sitede goremedim eger yazmıssan sayfa link ini atabilirmisin. eger yazmamışsan acıl bu konuya ıhtıyacım var anlatabilirmisin. teşekkür ederim