Aug 26 2011
ASP.NET Membership, Roles, Forms Authentication–Part II ASP.NET Membership Visual Studio Web.config Settings
Merhaba, bügün sizinle önceden başlamış olduğumuz ASP.NET Membership teknolojisinin Web Formlar üzerinde nasıl kullanılacağına dair örnek yapacağım. Bu makalemin ilk kısmında, sizinle ASP.NET Membership teknolojisini kullanabilmek için gerekli SQL Server ayarlarını yapmıştık. ( ASP.NET Membership Part I ). Çalışmamıza başlayabilmek için Visual Studio’da yeni bir Web Application oluşturalım. Oluşturduğumuz Web Application’da sizinde tahmin ettiğiniz üzere ASP.NET Membership’I kullanabilmek için bazı ayarlar yapmamız gerekiyor. ASP.NET’de ayar denince akla gelen ilk isim olan Web.config dosyası burda bizim için yine kilit dosyadır. Web.config dosyası XML tabanlı bir dosyadır, ve uygulamamıza dair yapılandırma kodlarını barındırır. Bu dosya son derece güvenlidir, cünkü .config uzantılı olan bu dosya User tarafından yapılan Request’e cevap vermez, yani kullanıcı tarafından çağrılamaz. ASP.NET Membership için hazırlamış olduğumuz SQL Server Connection bilgilerini de Web.config içerisinde tutacağız. O halde Web.config dosyayı içerisine Connection String’I yazmaya başlayalım.
<connectionStrings>
<add name="AspNetMembershipSample"
connectionString="Data Source=.;Initial Catalog=AspNetMembership;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
Yukarıda görmüş olduğunuz gibi Connection String’I Web.config’in appsettings tag’I içine ekledim. Şimdi asıl önemli olan noktaya geldik. Sırada ASP.NET Membership ayarlarını yazmak var. Bunun için tabii ki yine Web.config dosyamızı kullanıcaz. Yazmamız gereken kod System.Web tag’inin içinde bulunmalıdır.
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="AspNetMembershipSampleConnection"
applicationName="MembershipAndRoleProviderSample"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed" />
</providers>
</membership>
Yazmış olduğum kod’da herşey açıkça ortadadır, fakat baktığımızda anlam veremeyeceğimiz bir nokta <clear/> kullanılması. Web.config dosyası, proje oluşturulduğunda machine.config isimli bir dosyadan alır. Bu dosya içerisinde varsayılan olarak ayarlanmış olan ASP.NET Membership yapısı SQL Express kullanmaktadır, fakat ben veritabanımı SQL Server 2008 R2 üzerinde tutuyorum. Bu durumda projemi run edersem bana zaten bir connection var olduğu söylenir. Fakat varolan bu connection benim connection bilgim değil. Bu nedenden ötürü yazmış olduğum <clear/> tag’I machine.config dosyasından gelen ayar’ı override ederek, benım yazmış olduğum connection bilgilerini varsayılan duruma getiriyor. Web.config dosyamızda gereken tüm ayarlamaları yapmış bulunmaktayız.
ASP.NET Membership temek olarak 3 yapıyı bünyesinde barındırır.
1- Membership: Üyelik işlemleri ile ilgili kısımdır.
2- Role: Üyelerin yapabileceği işlemleri kısıtlamaya yarar. Bu kısıtlamalar yönetici tarafından belirlenir.
3- Profile: Bir üyelik kaydı almak için aslında temel olarak bir kullanıcı adı ve şifre isteriz. Bunun haricinde ki tüm bilgileri isteyip istememek tamamen size kalmış. Profile ile kullanıcıdan ek bilgiler isteyebilirsiniz (TC Kimlik No, Ev Adresi, Telefonu vs. ).
Şimdi Solution Explorer’a geri dönüp ASP.NET Configuration’ı çalıştırıyoruz.
Karşımıza çıkan ekran eğer aşağıda ki gibiyse, yazdığınız kod bloğunda bir hata var demektir.
Bu ekranı aldığınız takdirde kod tarafında düzeltme yapmanız gerekiyor. En ufak bir harf hatası bile bu hatayı almanıza yeterlidir. Kodumuzu gözden geçirip tekrar ASP.NET Configuration’u çalıştırıp Provider sekmesinde geldiğimiz zaman aşağıda ki ekran görüntüsü karşımıza çıkıyor.
Bu ekranda bizim seçimimiz ikinci seçenek olan Select a different provider for each feature (advanced) olacaktır. Çunku ilk seçenek tüm özelliklerin tek bir provider’dan sağlanacağını belirtiyor, fakat biz her bir özellik için farklı provider seçmek istiyoruz.
Seçimimizin ardından ekrana şekildeki gibi bir görüntü geliyor, bu görüntüde Test linkine basıp Connection durumunu test ediyoruz.
Test linkine bastıktan sonra eğer şekilde ki gibi mesaj alıyorsanız herşey hazır demektir.
Bu makalemin bir sonra ki bölümünde Visual Studio’da kontrolleri kullanarak, yapmış olduğumuz ASP.NET Membership implementasyonunu uygulamak olacak. Görüşmek üzere.




