Sitenizde "Membership" (Üyelik Sistemi) kullanmak istiyorsaniz adim adim yapmaniz gerekenler özetle su sekilde gösterilebilir.
Önce, BASLAT - PROGRAMLAR - VISUAL STUDIO TOOLS - COMMAND PROMPT ’a "aspnet_regsql" yazip enter’a basin. Ardindan ileri, ve tekrar ileri deyin.
Sonrasinda Sunucuyu ve Veritabanini seçeceginiz bir kurulum sihirbaziyla karsilasacaksiniz. Burada Local’den kurulum yapacaksaniz; "Windows Kimlik Dogrulamasi" seçiliyken
en altta bulunan veritabani ismini bulup seçin ve diger adima geçin. Eger Herhangi bir Host hesabiniz varsa ve kurulumu bu hesap üzerinden gerçeklestirmek istiyorsaniz;
"SQL Server Kimlik Dogrulamasi" seçiliyken Host’taki veritabaninizin "kullanici adi" ve "parola" ’sini girerek yine en alttaki veritabaninizi seçip bir sonraki adima ilerleyin.
Yaratilan Tablo ve Stored Procedure’leri uygulamamizla haberlestirmek için Web.Config dosyamiza MEMBERSHIP tag’i eklemeliyiz. Bu tag’i yazmayla ugrasmak yerine Machine.Config dosyamizdaki hazir yazilmis halini aliyoruz.
Dizini Su Sekildedir:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG
<system.web>(Bu Tag’in altina tasi)
<membership>
<providers>
<clear/> (Bunu biz ekledik)
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>
ConnectionStrings kismina da alttakini ekliyorsunuz.
<connectionStrings>
<clear/>
<add name="LocalSqlServer" connectionString="Data Source=.;Database=Northwind;Trusted_Connection=True"/>
</connectionStrings>
(Toolbox – Login’deki) LoginName sürükledik : Bu kontrol default olarak Windows Authentication seçili oldugu için (Web.config dosyasinda) sizin Windows hesabinizin adini gösterir. Ilk önce bunu göstermemesi için, yani kayitli kullanicinin kullanici adini göstermesi için Forms Authentication olacagini belirtmeliyim…
Eski Hali : <authentication mode=“Windows“ />
Yeni Hali:
<authentication mode="Forms">
<forms name="frm" loginUrl="Giris.aspx"/>
</authentication>
Kisi kayitli ise, kullanici bilgileri ile login olsun ve gittigi Giris.aspx sayfasinda (eger kayitli degil ise) Kayit yaptirabilsin (Isterse Kayit.aspx sayfamiza gidebilsin.)
Default.aspx’e LoginStatus (Toolbox – Login sahasindan) sürükledim. Bu kontrol sayesinde Login diye bir link geldi. Bu linke’de bastigimda Giris.aspx sayfasina yönleniyorum. Bu sayfada ise beni Login Kontrolü karsiliyor. Bu kontrolde ilk önce özelliklerinden CreateUserText’ine Yeni Kullanici yaziyorum ve CreateUserURL’ine Kayit.aspx seçiyorum. Bu sayfada ise CreateUserWizard kontrolüm beni karsiliyor.
Kayit.aspx sayfasinda bir kullanici hesabi olusturuldugunda “Continue” butonuna bastigimizda hiçbir yere yönlendirme yapmiyordu. Ben CreateUserWizard’in ContinueDestinationPageUrl özelligini kullanarak Giris.aspx’e gitmesini belirttim.
Artik “Continue” dedigimizde bizi Giris.aspx yönlendirecek ve giris yaptigimizda ise Default.aspx‘e yönlenecegiz. Bu sayfada da bulunan login status kontrolünde LogOut (Çikis) linki artik belirecek ve LoginName kontrolümde ise login olan kullanicinin Kullanici Adi gözükecektir.
Bazi sayfalara bazi kullanicilar ulasabilsin.
Yonetim sayfasina ise sadece yonetici rolündeki kullanici ulasabilsin seklinde bir senaryomuz varsa yapmamiz gereken;
önce Admin için bir dosya olusturuyoruz ve içine Yonetim.aspx isminde bir webform açiyoruz. Daha sonra Solution Explorer üzerinde bulunan çekiç ve dünya ikonuna tikliyoruz ve karsimiza Adminstration Tools geliyor.
Ardindan Security sekmesine tikliyoruz ve Enable Roles linkine basiyoruz. Daha sonra Create Manage Roles linki geliyor. Bu linke giriyoruz ve “Admin” ile “Sefil” isminde 2 rol tanimliyoruz. ;)
Daha sonra Create User diyerek 2 kullanici olusturuyoruz. Birisini birazdan Admin yapacagiz. Olusturduktan sonra create or manage users’a geliyoruz ve edit roles linklerini tek tek tiklayarak ilk kullanicimiz için Admin , ikinci kullanicimiz için Sefil rolünü isaretleyerek kaydediyoruz.
Daha sonra Security sekmesindeki menüden en sag tarafta create manage rules linkine basarak yetkilendirmeleri söylemeye basliyoruz. Admin klasörünü seçiyoruz ve üstten Role radiobutton’unu isaretleyerek Admin seçili olduguna dikkat ediyoruz ve allow ‘u da isaretledikten sonra Ok diyoruz. Bu sayede Admin klasörü için Admin’e tam yetki vermis olduk.
Daha sonra Users seçerek deny diyoruz ve tekrar ok diyoruz ardindan tekrar deny diyerek Anonimous Users seçiyoruz ve tekrar OK diyoruz. 3 asama yetkilendirme yapmis bulunduk. Tüm bu seçtiklerimiz Admin klasörümüzün altinda Web.config dosyasi olusturularak kaydediliyor. Fakat solution explorer’da göremiyoruz.
Bu dosyayi projemizde gösterebilmek için Admin klasörüne sag tiklayarak en alttan open containing folder diyebilir ve açilan penceredeki web.config ‘i tutup Solution Explorer’daki Admin Klasörünün içine tasiyabiliriz.
Giris sayfamizda Tüm kullanicilar için önce “Giris Yap” gözüksün. Eger gelen kullanici Kayitli ise ve Authenticate durumunda ise yani, giris yapmis ise Makaleler linki ve Çikis Yap linki gözüksün.
Eger giren kullanici Admin rolünde ise, onun için de hem Çikis Yap , hem Makaleler linki hem de Yönetim sayfasina yönlendiren Yönetim linki çiksin. Bu sekilde diger tarafta bir “Admin Paneli” olusturabiliriz.
Simdi bakalim…
Default.aspx’i Source kismindan daha önce attigimiz kontrolleri siliyoruz. Yani o sayfadaki div’in içini temizliyoruz..
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:LoginStatus ID="LoginStatus1" LoginText="Giris Yap" runat="server" />
</AnonymousTemplate>
<LoggedInTemplate>
<asp:LoginStatus ID="LoginStatus2" LogoutText="Kaç Kurtul" runat="server" />
<br />
Hosgeldin <asp:LoginName ID="LoginName1" runat="server" />
<br />
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Makale.aspx">Makaleler</asp:LinkButton>
< /LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Admin">
<ContentTemplate>
<asp:LoginStatus ID="LoginStatus3" LogoutText="Kaç Kurtul" runat="server" />
<br />
Hosgeldiniz <asp:LoginName ID="LoginName2" runat="server" />
<br />
<asp:LinkButton ID="LinkButton3" runat="server" PostBackUrl="~/Makale.aspx">Makaleler</asp:LinkButton>
<br />
<asp:LinkButton ID="LinkButton2" runat="server"
PostBackUrl="~/Admin/Yonetim.aspx">Yönetim</asp:LinkButton>
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
Hepsi bu..
Hepinize kolay gelsin.. ;)