Anda di halaman 1dari 22

ASP.NET MVC 2 Mimarisi, ASP.

NET Uygulama Ynetimi ve Gvenlik Destei

ASP.NET MVC 2 MMARS, ASP.NET UYGULAMA YNETM VE GVENLK DESTE

Platform, Programlama Dili: Visual Studio 2010, C#

NSZ: .NET tabanl bir uygulama gelitirme projesi ncesi yaptm almalar, yararl olmasn dileyerek dokman haline getirdim ve paylayorum. Ali hsan alkan aliihsancaliskan@yahoo.com

Hazrlayan: Ali hsan alkan

Sayfa 1/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

1. GR
Dokmanda anlatlacak olan ASP.NET MVC 2 uygulamalar ve ASP.NET gvenlik desteine ilikin temel bilgiler aada yer almaktadr.

1.1. ASP.NET
Microsoft tarafndan gelitirilen ve programclara dinamik web siteleri, web uygulamalar ve web servisleri gelitirme ortam sunan bir web uygulamalar gelitirme ats/teknolojisidir.

1.2. ASP.NET MVC


ASP.NETin sunduu ve model-view-controller (MVC) mimari desenini uygulayan bir web uygulama atsdr. MVC ile ASP.NET uygulamalar Model, View ve Controller rollerine blnerek gelitirilir. ASP.NET MVC uygulama altyaps, ASP.NET Web Formlar gelitirme altyapsna alternatif olarak sunulmutur.

Model-view-controller; yazlm mhendisliinde kullanlan, bir web uygulamasnn bileenlerini mantksal olarak ayran bir mimari tasarm desenidir. Bu ayrma ilemi ile, uygulamann zgn paralar zerinde daha fazla kontrol salanr ve gelitirme, deiiklik ve test ilemleri kolaylar. Kullancya ykl miktarda verinin sunulduu karmak uygulamalarda veri ve gsterimin soyutlanmas esasna dayanr. Bylece veriler (model) ve kullanc arayz (view) birbirini etkilemeden dzenlenebilir. Model-view-controller, bunu controller ad verilen ara bileenle, veri gsterimi ve kullanc etkileiminden, veri eriimi ve i mantn karma suretiyle zmektedir.

Hazrlayan: Ali hsan alkan

Sayfa 2/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei M (Model) M (Model), Mantn ve veri ileme srelerini yrtr. C (Controller) tarafndan gnderilen emirlere gre hareket eder. Bilgi ileme srecinden sonra veriyi C'ye, dier modellere veya dorudan V (View)'ye gnderir. V (View) V (View) son kullancya gsterilecek olan verinin sunumu ile ilgilenir. V, bu bilgiyi C veya M'den alr, ayn zamanda son kullancdan gelen talepleri C'ye iletir. C (Controller) C ise sistemin ana ksmdr. Gelen talepleri kontrol eder ve sistemin dier elemanlarnn (M,V) bilgiyi uygun ekilde alp, gndermelerini salar. ASP.NET MVC 2.0 iskeleti zerinde bir MVC 2 web uygulamasnn nasl yaratlaca ve gelitirileceine dair bilgiler ilerleyen blmlerde anlatlmaktadr.

1.3. ASP.NET Gvenlik Destei


Gnmzde e-ticaret siteleri, portaller, web siteleri, forumlar ve sosyal alar gibi birok uygulama, kullanc hesaplar altyapsn sunar. Kullanc hesaplar sunan uygulamalar bir takm hazr servisler de sunmaldr. rnein yeni ziyaretiler yeni bir hesap yaratabilmeli, sisteme giri yapan kullanc ya da kullanc gruplarnn kimliine gre baz sayfa ve eylemler snrlandrlabilmeli/zelletirilebilmelidir. Kullanc gruplar, rolleri ve hesaplarnn ynetimi kolayca yaplabilmelidir. ASP.NET, gelitiriciler iin yukarda bahsedilen servisleri hazr olarak sunan bir gvenlik destei altyaps salar. Gvenlikle ilgili uygulamaya zg konfigrasyon deiiklikleri uygulamann web.config dosyasnda saklanrken kullanc, rol, yelik gibi veriler ise ASPNETDB isimli veritabannda saklanr. Gelitiricilere bu altyapy gerekletirebilmelerini salar: kullanarak aadaki ilemleri

Uygulamada kullanc tanmlama ve kullanc oturumu ama, ASP.NET yelik altyaps ile kullanc hesaplarn ynetebilme, Kullanc hesaplarn ekleme, gncelleme ve silme, Giri yapan kullancnn kimliine bal olarak web sayfas, dizin ya da belirli fonksiyonlara kstl eriim salama, ASP.NETin Rol Ynetimi altyaps ile kullanc hesaplarn roller ile ilikilendirme, Kullanc rollerini ynetme, Web Sayfas, dizin ya da belirli fonksiyonlara rollere dayal eriim kstlamas getirme, ifre Ynetimi (Yaratma, deitirme, otomatik sfrlama) ASP.NETin mevcut gvenlik altyapsn deitirme ve gelitirme imkan.

Hazrlayan: Ali hsan alkan

Sayfa 3/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

2. ASP.NET MVC Uygulamas


Bu blmde bir ASP.NET MVC 2 uygulamasnn yaratlmas, uygulama katmanlarnn gelitirilmesi ve ASP.NET gvenlik destei ile ilgili bilgiler rnek kk bir uygulama gelitirilerek anlatlmtr. Uygulama; Microsoft Visual Studio 2010 gelitirme ortam, SQL Server 2008 Express Edition veritaban ve C# dili kullanlarak gelitirilmitir.

2.1. Uygulamann Yaratlmas


Visual Studio aldktan sonra File -> New -> Project men esi seilir.

Bir ASP.NET MVC 2 Uygulamas yaratmak iin alan New Project penceresinde srasyla sol blmdeki Visual C# -> Web ve sa blmdeki ASP.NET MVC 2 Web Application eleri seilir. Aadaki Name alanna uygulamann ad yazlr. Uygulamann adn Uygulama1 olarak belirleyerek OK butonuna basabiliriz.

Hazrlayan: Ali hsan alkan

Sayfa 4/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei OK butonuna basldktan sonra Create Unit Test Project isimli bir pencere alacaktr. Uygulamanzn fonksiyonellii ve davranlarn dorulayacak olan otomatik testler ieren bir Birim Testi Projesi yaratmak isteyip istemediinizi soran bu pencereyi bu klavuz kapsamnda olmad iin No, do not create a unit test project seeneini seip OK butonuna basarak kapatabilirsiniz.

Visual Studio, bu ilemler sonucunda yeni bir ASP.NET MVC uygulamasn, otomatik olarak ekledii dosya ve dizinlerle birlikte yaratr.
Yandaki resimde de grld gibi ok sayda dizin ve dosyadan oluan yeni bir uygulama yaratld. ASP.NET MVC uygulamalar aadaki dizinlerle birlikte yaratlr: Dizin /Controllers /Models /Views Amac URL istemlerini idare eden Controller snflarn ierir. Veriyi temsil eden ve ileyen snflar ierir. ktlarn grntlenmesini salayan kullanc arayz dosyalarn ierir. Okuma/yazma yaplmak istenen veri dosyslarnn sakland yerdir. JavaScript ktphane dosyalar ve scriptlerin konulduu yer. CSS ve imaj dosyalar ve dier dinamik olmayan ierik.

/App_Data

/Scripts

/Content

Hazrlayan: Ali hsan alkan

Sayfa 5/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei NOT: ASP.NET MVC bu yapda olmak zorunda deildir. Daha byk uygulamalarda, ynetilebilirlik asndan uygulama ok sayda projeye ayrlabilir. rnein; veri modeli snflar genellikle ayr bir ktphane olarak web uygulamasndan bamsz gelitirilir. Oluturulan uygulama ablonuna daha detayl bakacak olursak; Controllers dizini altnda iki tane controller snf bulunur. HomeController.cs Visual Studionun otomatik olarak oluturduu Home ve About isimli sayfalarn aknn ynetildii snftr. AccountController.cs snf ise, ASP.NETin sunduu Form ve yelik(Membership) servisleriyle ilgili metotlar ierir. rnein, sisteme giri/kayt yapmak iin alan LogOn.aspx / Register.aspx sayfalarnn kulland LogOn() ve Register() metodlarn ierir.

/Views dizinini atmzda, 3 alt dizin grrz. /Account dizini altnda uygulamaya giri, kullanc kayt, ifre deiiklii gibi ilemlere ilikin formlar yer alr. /Home dizini altnda rnek olarak yaratlm iki tane sayfa yer almaktadr. /Shared dizini altnda ise ortak kullanlan ablon dosyalar yer alr.

Hazrlayan: Ali hsan alkan

Sayfa 6/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei /Content ve /Scripts dizinleri srasyla uygulamann stilini belirleyen Site.css dosyasn ve AJAX ve jQuery destei salayan JavaScript ktphanelerini ierir.

Uygulama dosyalarn inceledikten sonra Visual Studionun oluturduu uygulamay altrarak test edebiliriz. Debug -> Start Without Debugging men elerine tklayarak uygulamay altrabiliriz.

Hazrlayan: Ali hsan alkan

Sayfa 7/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei Uygulama, aadaki gibi alacaktr. Aadaki resim Home.aspx formunu grntlemektedir.

Log On linkine tklanarak aadaki gibi kullanc giri formu alabilir. (LogOn.aspx)

Hazrlayan: Ali hsan alkan

Sayfa 8/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

2.2. ASP.NET Uygulama Gvenlii


Bu blmde bir nceki blmde yaratlan ASP.NET MVC 2 Uygulamasnn gvenlik altyaps anlatlacaktr. ASP.NET; hazr olarak uygulama ynetimi, konfigrasyonu ve gvenlii altyaps sunar. Oluturulan uygulamaya ait ynetim konsoluna girmek iin; Visual Studioda Project -> ASP.NET Configuration men esine tklanr.

ASP.NET Web Site Application Tool aadaki gibi alacaktr.

Hazrlayan: Ali hsan alkan

Sayfa 9/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei Alan ynetim uygulamas Gvenlik (Security), Uygulama Konfigrasyonu (Application Configuration) ve Salayc Konfigrasyonu (Provider Configuration) eklinde 3 ayr zellik sunar. Uygulama Konfigrasyonu ile uygulama ayarlar, e-posta servisi iin SMTP ayarlar, uygulamay aktif/pasif yapma, debugging gibi ynetimsel fonksiyonlar gerekletirilir. Salayc Konfigrasyonu ile web sitesi ynetimi iin kullanlan veri modelinin nerde saklanaca ile ilgili ayarlar yaplr. rnein kullanlan yelik ve Rol Salayclar burdan ayarlanabilir ve test edilebilir. Yeni yaratlan uygulamalar ASP.NETin sunduu salayclar kullanlacak ekilde konfigre edilmitir. ASPNETDB isimli veritabann kullanr. Gvenlik blmnde ise uygulamann gvenlik altyaps ile ilgili ynetimsel fonksiyonlar gerekletirilir. Kimlik Dorulama (Authentication) iin kullanc ve ifrelerinin ynetimi, rollerin yaratlmas (kullanc gruplar) ve uygulamann eitli blmlerine eriim izinlerinin kontrol (Authorization) bu blmde gerekletirilir. Ancak; eriim kontrolleri yalnzca dizin baznda yaplabilmektedir. Sayfa bazndaki eriim kontrol ilerleyen blmlerde programatik olarak gsterilecektir. Gvenlik ayarlar iin Web mensnden Securityi seiniz. Site Administration uygulamasnn st

Hazrlayan: Ali hsan alkan

Sayfa 10/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei Uygulama ilk yaratldnda, roller aktif deildir. Rolleri aktif hale getirmek iin alan sayfadaki Roles blmnn altndaki Enable roles linkine tklaynz.

Roller aktif olduktan sonra gvenlik ynetimi aadaki blm kullanlarak yaplabilir.

ASP.NET gvenlik altyaps ile ilgili uygulamaya ait konfigrasyon bilgileri uygulamann Web.config dosyasnda saklanr. rnein az nce rol salaycs aktif hale getirildikten sonra Web.config dosyasndaki roleManager etiketinin enabled deikeni true olarak deimitir.

<roleManager enabled="true"> <providers> <clear /> <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" /> <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> </providers> </roleManager>

ASP.NET gvenlik altyaps, oluturulan kullanc ve rollere ilikin bilgileri tutmak zere uygulama iinde bir SQL Server veri dosyas ile gelir. Proje dosyalarna Windows Explorer ile bakarak App_Data klasrne girdiinizde aadaki gibi ASPNETDB isimli veri taban dosyasn grebilirsiniz.

Hazrlayan: Ali hsan alkan

Sayfa 11/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

Dilerseniz bu dosyay SQL Server veritabanna ilitirebilirsiniz. Bu blmde ASPNETDB.MDF dosyasn Visual Studioda aarak veritabannn yapsn grmeye alacaz. Bunun iin ncelikle aadaki gibi Visual Studionun sol blmnde bulunan Server Explorer alr ve Data Connectionsa sa tklandktan sonra Add Connectiona tklanr.

Alan Choose Data Source penceresinden Microsoft Database File seilir ve Continue butonuna tklanr.

SQL

Server

Hazrlayan: Ali hsan alkan

Sayfa 12/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei Alan Add Connection penceresinde Database file name alann doldurmak iin Browse butonuna baslarak proje dosyalar iinde /App_Data/ASPNETDB.MDF dosyas seilir ve Test Connection ile test edildikten sonra OK butonuna baslr.

Bu ilem ile ASP.NET veri dosyasna bir balant kurmu olduk ve artk aadaki gibi veritaban nesnelerini grebilir ve ynetebiliriz. Aada grnen tablo ve dier nesneler ASP.NET Uygulama Ynetimi altyaps iin otomatik oluturulan veri altyapsdr. Yandaki resimde grnd gibi, uygulama iinde tanmlanacak kullanclar, roller, kiiselletirme, yelik, profil gibi tanmlar bu veritabannda saklanacaktr.

Hazrlayan: Ali hsan alkan

Sayfa 13/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

2.3. Uygulama Gelitirme


nceki blmlerde yeni bir MVC 2 uygulamas yaratld ve hazr olarak sunulan ASP.NET gvenlik altyaps etkin hale getirildi. MVC 2 uygulamasnn yaps ile gvenlik altyapsna ilikin bilgiler verildi. Bu blmde ise MVC mimarisi kullanlarak uygulamaya yeni sayfalar ekleme ve bu sayfalarn yaratlacak kullanc ve rollere zg eriim yetkilerinin yaplmas anlatlacaktr. rnek uygulamada Microsoft Virtual haritalarn getiren bir sayfa yaratlacaktr. Controllern Eklenmesi: Controller snflar HTTP istemlerinin karlanmas ve yant verilmesinden sorumludur. Her tarayc istemi belirli bir controller ile eletirilir. rnein; uygulamay altrdktan sonra About sayfasna tklaynz. Port numaras farkl olsa da http://localhost:49812/Home/About adresine benzer bir adres alacaktr. Bu adres aldnda uygulamann HomeController isimli controller arlr. HomeController snf bu tarayc isteini yantlamaktan sorumludur. HomeController snf iinde ise About() isimli metot (Controller Action) bu URL ile arlm olacaktr. Controller Actionlar ile bir Controller snf iinde taraycya farkl yantlar dndrlr. Aadaki rnekte About isimli metodla taraycya bir view (HTML) dndrlr. Bu view ise uygulamann /Views/Home/About.aspx dosyasdr.
public ActionResult About() { return View(); }

Earth

web

servisinden

ehir

Taraycya gnderilen yant HTML formatnda olabilecei gibi farkl bir Controllera ynlendirme, metin, JavaScript, ikil bir dosya ierii, indirilebilir bir dosya da olabilir. Ayrca View nesnesi araclyla taraycya daha nce oluturulan bir veri modeli de gnderilebilir. MVC uygulamasna yeni bir Controller eklemek iin Solution Explorerda Controllers dizinine sa tklayarak Adde tklaynz ve sonra Controller seiniz.

Hazrlayan: Ali hsan alkan

Sayfa 14/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

Alan Add Controller penceresinde Controller Name alanna HaritaController yazarak Add butonuna tklaynz. Controller Name alannn Controller ile bitmesi gerekmektedir.

Visual Studio projeye HaritaController.cs adnda yeni bir snf ekleyecektir. imdi de bu snfa haritalar grntleyebilmek iin yeni bir Action Method ekleyelim. Yeni bir Action Method eklemek iin HaritaController.cs snfna aada kodu yaptrp dosyay kaydediniz.
public ActionResult HaritaGoruntule() { return View(); }

Hazrlayan: Ali hsan alkan

Sayfa 15/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

Viewin Eklenmesi: Haritalar grntlemek iin HaritaController snfnn ynetecei bir sayfa eklenir. Yeni bir sayfa ierii dosyas eklemek iin HaritaController snf alr, HaritaGoruntule() metodu seilerek sa tklanr ve aadaki gibi Add Viewe tklanr.

Alan Add View penceresinde oluturacanz aspx sayfasnn ad, sayfann ablonu, bal olaca veri modeli gibi seenekler yer alr. Varsaylan deerlerle Add butonuna basnz.

Hazrlayan: Ali hsan alkan

Sayfa 16/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

Aada grld gibi yeni bir view sayfas oluturuldu.

Viewe erik Eklenmesi: Yeni oluturulan HaritaGoruntule.aspx sayfasn anz ve aadaki ierii Content elemannn iine kopyalaynz.

<h2>ehir Haritalar</h2> ehir se: <select onclick="GetMap(value);"> <option value="Istanbul">Istanbul, Trkiye</option> <option value="NewYork">New York, NY</option> <option value="Rio">Rio de Janeiro, Brazil</option> <option value="Paris">Paris, France</option> <option value="Naples">Naples, Italy</option> <option value="Keta">Keta, Ghana</option> <option value="Beijing">Beijing, China</option> <option value="Sydney">Sydney, Australia</option> </select> <br /> <br /> <div id='earthMap' style="position:relative; width:400px; height:400px;"> </div> <script charset="UTF-8" type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us"> </script> <script type="text/javascript"> var map = null; var mapID = ''; function GetMap(mapID) { switch (mapID) { case 'Istanbul': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(41.01, 28.96), 10, 'i', true); break; case 'NewYork': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(40.7, -74), 10, 'i', true); break; case 'Rio': map = new VEMap('earthMap');

Hazrlayan: Ali hsan alkan

Sayfa 17/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei


map.LoadMap(new VELatLong(-22.91, -43.18), 10, 'i', true); break; case 'Paris': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(48.87, 2.33), 10, 'i', true); break; case 'Naples': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(40.83, 14.25), 10, 'i', true); break; case 'Keta': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(5.92, 0.983), 10, 'i', true); break; case 'Beijing': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(39.91, 116.39), 10, 'i', true); break; case 'Sydney': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(-33.86, 151.21), 10, 'i', true); } } </script>

Bylece yeni sayfamz yaratm ve ieriklerini eklemi olduk. Sayfann uygulama mensnde grnebilmesi iin menlerin bulunduu /Views/Shared/Site.Master dosyas almal ve yeni sayfaya ilikin men esi aadaki gibi eklenmelidir.

Men esi eklendikten sonra uygulamay altrarak yeni sayfay test edebilirsiniz.

Hazrlayan: Ali hsan alkan

Sayfa 18/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei Sayfa Eriim Yetkilerinin Ynetilmesi: ASP.NET gvenlik altyapsnn sunduu olanaklar incelemek iin srasyla aadaki ilemler yaplacaktr. TemelKullanici ve Yetkili adnda iki tane rol (grup) tanm yaplacaktr. ali, mustafa ve seda adnda 3 tane kullanc tanm yaplacaktr. ali isimli kullancya Yetkili ve TemelKullanici rolleri verilecek, dier iki kullancya ise TemelKullanici rol verilecektir. Site ziyaretileri sadece Home sayfasn grebilirken, TemelKullanici rolndeki kullanclar Home ve About sayfalarn, Yetkili rolndeki kullanclar ise bunlara ek olarak ehir Haritalar sayfasn grebilecektir.

ASP.NET Web Site Administration aracn amak iin Visual Studioda Project -> ASP.NET Configuration men esine tklayarak alan uygulamada Security sekmesine tklaynz. Yeni bir rol eklemek iin Security sayfasndaki Create or Manage roles linkine tklaynz. Alan sayfada rol adn yazarak rolleri tek tek ekleyiniz.

Rolleri aadaki gibi ekledikten sonra sayfadaki Back butonuna tklayarak Security sayfasna dnnz.

Yeni kullanc eklemek iin Security sayfasnda Create User linkine tklayarak alan sayfada kullanc bilgileri ile kullancnn sahip olaca rolleri seerek Create User butonuna basnz.

Hazrlayan: Ali hsan alkan

Sayfa 19/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

Dier iki kullancy da ekledikten sonra Security sayfasndaki Manage users linkine tklayarak aadaki gibi kullanc listesini grebilirsiniz.

Sayfalara eriim yetkisini programatik olarak ayarlamak iin Controller snflarn kullanrz. ehir Haritalar sayfasnn sadece Yetkili rolndeki kullanclar tarafndan grnebilmesi iin HaritaController.cs dosyasn aarak HaritaGoruntule() metodunu bulunuz. HaritaGoruntule() metodu ehir Haritalar (HaritaGoruntule.aspx) sayfasnn taraycya gnderilmesini salayan metoddur. Metodun stne aadaki gibi Authorize isimli belirtimi (annotation) ekleyerek eriim kuraln oluturabilirsiniz.
[Authorize(Roles = "Yetkili")] public ActionResult HaritaGoruntule() { return View(); }

Benzer ekilde HomeController.cs dosyasn aarak About() metodu zerine aadaki gibi belirtim tanm yapabilirsiniz.

[Authorize(Roles = "TemelKullanici, Yetkili")] public ActionResult About() { return View(); }

Hazrlayan: Ali hsan alkan

Sayfa 20/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei Yukardaki ilemler ile formlarn eriim yetkisini rollere gre tanmladk. Uygulamann men elerine de bu kurala gre programatik olarak eriim kural tanmlamalyz. Bu sebeple Site.Master dosyasn aarak menu idli elemann iini aadaki gibi deitiriniz.
<li><%: Html.ActionLink("Home", "Index", "Home")%></li> <% if (Page.User.IsInRole("Yetkili")) { %> <li><%: Html.ActionLink("ehir Haritalar", "HaritaGoruntule", "Harita")%></li> <% } if (Page.User.IsInRole("Yetkili")||Page.User.IsInRole("TemelKullanici")) { %> <li><%: Html.ActionLink("About", "About", "Home")%></li> <% } %>

Sayfa Eriim Yetkilerinin Test Edilmesi: Eriim yetkilerini test etmek iin uygulamay altrnz. Uygulama ilk aldnda yalnzca ziyaretilerin grebilecei Home sayfas alacak ve mende sadece bu sayfa grnecektir.

Uygulamann sa st kesinde bulunan Log On linkine tklayarak ali kullancs ile uygulamaya giri yapnz. Ali kullancs Yetkili rolyle tm sayfalar grme yetkisine sahip olduundan mende de tm sayfalar grebilecektir.

Seda ve mustafa kullanclar ise yalnzca TemelKullanici rolne sahip olduklarndan giri yaptklarnda aadaki gibi Home ve About sayfalarn grebileceklerdir.

Hazrlayan: Ali hsan alkan

Sayfa 21/22

ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Ynetimi ve Gvenlik Destei

3. SONU
Bu dokmanda ASP.NET MVC2 Uygulama mimarisi ve gvenlik altyaps, giri seviyesinde rneklerle anlatlmtr. Bu mimari ve altyap ile dier .NET servis ve APIlar da kullanlarak Visual Studio ile kurumsal web uygulamalar, web siteleri ve web servisleri gibi ok sayda uygulama gelitirilebilir. ASP.NET MVC hakknda daha fazla bilgi iin: http://www.asp.net/mvc ASP.NET Gvenlik Altyaps hakknda daha fazla bilgi iin: http://www.asp.net/security/tutorials Referanslar: http://en.wikipedia.org/wiki/ASP.NET http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework http://en.wikipedia.org/wiki/ASP.NET_Web_Site_Administration_Tool http://www.asp.net/ http://msdn.microsoft.com/en-us/library/dd410597.aspx

Hazrlayan: Ali hsan alkan

Sayfa 22/22

Anda mungkin juga menyukai