Merhaba öncelikle whidbey de bir web sitesi düzenlerken karşımıza ilk çıkan ya da gözümüze ilk takılan şey olan Login kontrollerini inceleyeceğiz. Bunun için fazla kaynak aşındırmaya gerek yok MSDN kütüphanelerinde herşeyi bulabiliriz. Ben sadece bir göz dolgunluğu olsun nasıl kullanılıyor whibey de ne yapmam gerek gibi sorulara yanıt vermesi açısından bir örnekle burada açıklamak istedim. Bunun için Asp.net Membership ile işe başlayacağız. Bir web sitesi kuralım: IIS de bir web sitesi
- Visual Studio da File > New Web Site diyelim
- ASP.NET Web Site seçip oradan Browse > sol taraftan Local IIS oradan varsayılan web sitemizi seçelim.
- Sağ üst kısımdaki 2 simgeden soldaki yani Create New Web Application butonuna tıklayalım ve membership adında bir web sitesi oluşturalım.
- Open diyip açalım dili istediğiniz gibi seçebilirsiniz aslında bu uygulamada bir kod yazmayacağız.
Sitemizi kurduktan sonra karşımıza Default.aspx gelecek evet şimdi sitemizi ASP.NET Membership için ayarlamamız lazım işte ASP.NET 2.0 da web.config dosyasını direk düzenleyen görünüm panelini Websites > ASP.NET Configuration dan açalım.

ASP.NET Membership yaratma
- önce Solution Explorer a gelip projemize sağ tıklayıp New Folder diyerek MemberPages i ekleyelim.
- Sonra Asp.net Configuration ekranından Security > Security Setup Wizard a tıklayalım. İleri diyerek geçelim.
- Karşımıza 2 adet security seçeneği çıkıyor bizi burada From the Internet ilgilendiriyor. Bu sayede Forms authentication metodunu uygulamış oluyoruz.
- İleri diyerek geçelim burada belirteyim sistem Application_Data klasörüne siteyi tamamen yönetebileceğiniz bir database ekledi tabi kendi veritabanınız yerine geçmez ama bunu ilerde değiştirmeyi de göstereceğiz.
- Açıklamalardan sonra Enable roles for this web site (Bu web sitesinde rolleri aktifle) karşımıza çıkıyor bu ilerde ele alınacağı için şimdilik seçmeden atlayalım.
- Evet, sihirbaz sayesinde kullanıcı ekleme paneline geldik buradan yeni bir kullanıcı yaratacağız.
- User Name : boşluk olmadan bir kullanıcı adı.
- Password : şifre güçlü bir şifre içinde büyük küçük harf olan sayı ve özel karakter olan şifre kabul oluyor. Ve en az 8 karakter olmalı.
- E-mail : kişisel e-mail adres.
- Security Question ve Answer : Şifre geri istemede kullanılacak soru ve cevap.
- Create User a tıklayın üyelik yapıldıktan sonra ileri diyerek diğer panellere geçelim.
- Erişim için yeni kural tanımlamaya girelim. Add New Access Rule(yeni erişim kuralı) kutusundan membership(projemiz) seçelim oradan da treeview den önceden yarattığımız MemberPages i seçelim bu sayede sistemimize MemberPages klasörüne erişimi kısıtlamış olacağız
- Rule Applies To (kuralları uygula) kısmının altında Anonymous User (Giriş yapmamış üye- Ziyaretçi) yi seçelim ve onun erişimini ayarlayalım.
- Permissions(izinler) altından Deny(engelle) yi seçelim ve Add This Rule diyerek bu kuralı ekleyelim. Bu ayar sayesinde ziyaretçilerimizin MemberPages klasöründeki herhangi bir sayfaya erişmeye çalıştığında direk Login.aspx e gönderecek.
- Bitir dedikten sonra sistem projemize bir Web.config dosyası yarattı. Solution Explorer’ı yenileyerek bu dosyayı görebiliriz.
Siteye Login kontrolünü eklemek
Visual Studio dan Default.aspx e girelim. Şimdi LoginStatus kontrolünü ToolBox dan seçip Default.aspx e sürükleyelim. Bu kontrol sayesinde bir Login(giriş) linki ve giriş sağlandığında Logout(çıkış) linki elde edebileceğiz.
Not : Bu örnek de giriş panelini Login.aspx de tanımlayacağız ama siz farklı bir dosyaya login paneli eklemiş iseniz Web.config dosyası sayesinde bunu değiştirebilirsiniz.
- Şimdi projemize Login.aspx dosyasını ekleyelim bunu özel bir klasöre değil Default.aspx in yanına ekleyelim ve tasarım ekranına geçelim.
- Login kontrolünü seçip login.aspx e sürükleyelim bu kadar sisteme bir login ekledik eğer login e özel hata ayıklayıcısı koymak isterseniz Validations kısmından ValidationSummary i sürükleyin projeye ve onun özellikler panelinden ValidationGroups kısmına Login1 (sürüklediğimiz login kontrolü ismi) yazalım.

LoginView kontrolü ve Girişin onaylanması
Kullanıcılarımızın online olduğunda onlara mesaj göstermek yada giriş yapmamışlarsa onlara giriş yapmalarını hatırlatmak amacıyla kullanacağımız kontrol LoginView dir.
Default.aspx i açalım ve LoginView i sürükleyelim. LoginView in sağ üst kısmında küçük bir ok vardır ona tıklayarak Edit Template e tıklayalım bu sayede kullanıcı giriş yapmışsa ya da yapmamışsa ekranda gösterilecek temayı hazırlamış olacağız. Karşımıza Anonymous Template(ziyaretçi teması) çıkacak oraya “ Giriş yapmadınız lütfen Login’e tıklayarak giriş yapınız. ” yazalım. Anonymous Template in altında LoggedInTemplate(Giriş yapıldı teması) nı seçelim oraya Login kontrolleri içerisindeki LoginName ’i sürükleyelim (bu sayede sistem otomatik giriş yapan kullanıcının UserName ini yani kullanıcı adını otomatik yerleştirecektir.) ve yanına şunu yazalım “[UserName] hoşgeldin... ” yazalım. Sonra o sağ üstteki oka tıklayarak End Template Editing(tema düzenlemesini bitir) diyelim.
Sistem çalışmadan önce Default.aspx e sağ tıklayarak Set As Start Page(giriş sayfası yap) diyelim bu ayar sayesinde projemiz çalıştırıldığında Default.aspx i açacaktır. Sistemi test etmek için Ctrl+F5 e basalım evet bu kadar kolay bu zamana kadar bir kod yazmadık ve elimizde basit bir login var aslında biraz karmaşık anlattım ama tekrar edince kolay olduğu göze çarpıyor.
CreateUser kontrolü ile kullanıcı ekleme
Projemizde kullanıcı eklemek için bir sayfa tanımlayalım bu sayede sürekli Asp.net Configuration a girmeye gerek kalmayacak. Uzun sürelerde oturup SQL cümlelerini yazmak yerine ve kullanıcının şifre kontrolü yerine otomatik tanımlama özellikleri gelmiş yani şifre için oturup basit mi değil mi diye bir ton kod yazmaya gerek kalmayacak.
- Projeye sağ tıklayarak Add New Item dan Register.aspx web form’unu ekleyelim (Dikkat! MemberPages klasörüne değil Default.aspx in yanına eklememiz gerek). Sol alt taraftan Design(tasarım) görünümüne geçip içine CreateUser kontrolünü sürükleyelim sonra özellikler panelinden ContinueDestinationPageUrl(girişten sonraki gidilecek sayfa) kısmına ~/Default.aspx yazalım ki kayıt işlemi tamamlanınca ana sayfaya gitsin. Sonra Toolbox dan bir HyperLink sürükleyelim (kullanıcılarımız kayıt olmadan ana sayfaya geri dönmek isterse) Text özelliğine “Ana Sayfa” yazalım NavigateUrl özelliğine ise ~/Default.aspx diyelim.
- Bu kadar aslında yapmamız gereken tek şey kaldı Default.aspx e bir HyperLink ekleyip Text özelliğine “Kayıt” diyelim NavigateUrl kısmına ise ~/Register.aspx diyelim bu sayede kullanıcılarımız direk kayıt sayfasına gidecektir. Elimizde bir kullanıcı ekleme sayfası oldu. Sitemizi Ctrl+F5 ile test edelim.
Kullanıcılara dosyalara erişimi kısıtlama (Sadece kayıtlı üyelere kısıtlama)

Yaptığımız MemberPages klasörüne sağ tıklayrak Add New Item den Members.aspx i ekleyelim. Tasarım görünümden içine “Merhaba üyeler” diye bir yazı ekleyelim ve Default.aspx e bir Hyperlink ekleyerek onun Text özelliğine “üye Sayfası” NavigateUrl özelliğine ise ~/MemberPagers/Members.aspx yazalım. önceden configurasyonda yaptığımız ayar sayesinde MemberPages klasörüne üye girişi yapmayan kimse giremez. Deneme yapalım Ctrl+F5 e basarak çalıştıralım ve giriş yapmadan üye Sayfası linkine tıklayalım karşımıza Login.aspx çıkacaktır.
Uğraşacağınız kısım şifre bulmaktır :) ancak neyse bu kadar kolay olacağı kimin aklına gelirdi ki. Biraz daha ileride size kendi yaptığımız database e nasıl bu kontrolleri adapte edebileceğimizi anlatacağım. Bu doküman whidbey için hazırlanmış MSDN Help Library sinden alınmıştır oraya bakarsanız daha nice şeyler yapılabilirsiniz. Şifre geri isteme, şifre değiştirme ve daha fazlasını örnek dosyada bulabilirsiniz. İyi günlerle kalın…
Kaynak : csharpnedir.com
|