MVC (Model View Controller), oluşturulan sitede kimlik doğrulaması ve yetkilendirme işlevini kolaylıkla sağlar. Sadece kimliği doğrulamış kullanıcılar sitenin izin verilen kısmına erişebilirler. Controller (kontrol) içinde tanımlanan yetkilendirme ile her view (görünüm) farklı kişilerin erişimine açılabilir. Bir MVC uygulaması gerçekleştirebilmek için bilgisayarda Visual Studio 2008 SP1 yüklü olması gereklidir. Standart bir MVC uygulaması yapabilmek için daha önceki yazıma bakabilirsiniz. Öncelikle File (Dosya) -> New Project (Yeni Proje) adımlarından sonra açılan pencereden ASP.NET MVC Web Application (ASP.NET MVC Web Uygulaması) seçilerek proje oluşturulur. Bir sonraki adımda test projesi istenilip istenmediğini soran pencere gelir. Burada test projesi istenilmediğine dair seçim yapılır. (Visual Web Developer sürümlerinde bu pencere çıkmaz.) Proje oluşturulduktan sonra güvenlik ayarlarına ulaşabilmek için derlenmesi gerekir. Bunun için “F5” tuşuna basılması yeterli olur. Derleme sonrasında açılan pencere kapatılır. Kullanıcıları ve yetkilendirmeleri oluşturmak için ASP.NET Configuration (ASP.NET Yapılandırması) seçeneğine tıklanır. Açılan Web Site Administration Tool (Web Sitesi Yönetim Aracı) içinde Security (Güvenlik) sekmesi seçilir. Eğer veritabanı sorunu yoksa alttaki sayfa gelir. Burada ayarlamaları Security Wizard (Güvenlik Sihirbazı) ile adım adım yapılabilir. Seçeneğe tıklandıktan sonra gelen bilgilendirme ekranında Next (İleri) seçeneği tıklanır.   Sonraki adımda "from internet" (internet üzerinden) seçeneği seçilir ve devam edilir. Advanced Provider Settings (Gelişmiş Sağlayıcı Seçenekleri) basamağı atlandıktan sonra Define Roles (Yetkili Grupları Tanımla) adımı gelir. Burada Enable Roles (Yetkili Grupları Etkinleştir) seçeneği işaretlenir. Next (İleri) seçilir.     Bir sonraki adımda yetkili gruplarının (Roles) oluşturulacağı bölüm gelir. Burada yetkili grubu adının girilip Add Role (Yetkili Grubu Ekle) seçilir. Sıradaki adımda isteğe bağlı olarak kullanıcılar eklenebilir. Kullanıcılar kendilerini İnternet üzerinden de kaydedebilir. Kullanıcı eklemek için kullanıcının bilgileri girilir ve Create User (Kullanıcı Oluştur) seçilir.   Sonraki adımda hangi klasörlere kimlerin ulaşıp kimlerin ulaşamayacağına dair yetkilendirme yapılır. Yetkilendirmenin yapılacağı klasör ve yetkili seçildikten sonra Allow (İzin ver) ya da Deny (Yasakla) seçilir. İşlemi tamamlamak için Add This Rule (Bu yetkilendirmeyi ekle) seçilir.   Sihirbaz ile adım adım oluşturmayı bitirdikten sonra bazı kullanıcıları ve bazı yetkilendirme sınıfları oluşturmuş olur. Security (Güvenlik) sekmesinden Manage Users (Kullanıcıları Yönet) seçilir. Gelen ekranda istenirse kullanıcı eklenir, kullanıcılar yetkilendirilir ya da silinebilir. Edit Roles (Yetkileri Düzenle) seçildikten sonra kullanıcının eklenmek istenildiği yetkili grubu seçilir. Kullanıcılar ve yetkilendirmeler oluşturulduktan sonra erişimin nasıl sınırlandırılacağı belirlenir. "Proje" altında "Controllers" klasörünün içindeki “HomeController.cs” dosyası açılır.   Burada Index() (Anasayfa) ve About() (Hakkında) dosyaları hazır olarak gelir. Bunların altına sayfalar (View) eklenebilir. Ekledikten sonra "public" (genel) komutlarının önüne [Authorize] (yetkilendir) eklenirse o sayfa için kimlik doğrulama yapılır. Bu komuta parametreler eklenerek belirli kullanıcı ya da yetki grupları haricindekilerin sayfaya erişimi engellenebilir. namespace Proje.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } [Authorize] public ActionResult About() { return View(); } [Authorize(Roles="admin")] public ActionResult AdminSayfasi() { return View(); } [Authorize(Users="kullanici1")] public ActionResult Kullanici1kisisel() { return View(); } } } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Yukarıda yazılan (Roles=”admin”) sadece "admin" yetki grubundakilerin sayfaya erişimine izin verir. (Users=”kullanici1”) ise sadece kullanici1’e izin verir. Bunları HomeController.cs içine ekledikten sonra eklenen sayfa isimlerine sağ tıklanarak, “Add view…” (Görünüm ekle) seçilir. Gelen ekranda Add(Ekle) tuşuna basılır.   Projenin Views(Görünüm) klasörü içindeki "Home" klasörü içinde bulunan “Index.aspx” açılır.   Anasayfa olan (Index.aspx) içine yeni oluşturulan sayfaların bağlantısı eklenir. <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> <h2><%= Html.Encode(ViewData["Message"]) %></h2> <p>To learn more about ASP.NET MVC visit <a href=http://asp.net/mvc title="ASP.NET MVC Website">http://asp.net/mvc</a></p> <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Views/Home/AdminSayfasi.aspx">HyperLink</asp:HyperLink> <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Views/Home/Kullanici1kisisel.aspx">HyperLink </asp:HyperLink> </asp:Content> .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Views -> Home altında oluşturulan her dosyanın içeriği istenildiği gibi ayarlanabilir. Her View() üstünde ayrı yetkilendirme yapılabilir. Kullanıcılar siteye ulaşmak istediklerinde aşağıdaki gibi bir parola ekranı ile karşılaşırlar.   Bu yazı Cem Bozkurt tarafından hazırlanmıştır. Tags: , , , | Categories: C# | Microsoft | .NET
Zamanla Windows’un doldu ve yaptığım işlerde ben yavaşlatmaya başladı. Format attım. Ancak bu sefer diğer diskte bulunan Ubuntu 9.10 işletim sistemine ulaşamaz oldum. Daha önceki yazılarımda Windows a format atma durumunda Grub’ı nasıl geri getirebileceğinizi yazmıştım. Orda yazdıklarımı aynen uyguladım ve tahmin edebileceğiniz gibi Grub geri geldi. Ama bu kez sorun bu grub içinde Windows 7 işletim sistemimi görmüyordu. Bu yüzden Windows’un MBR sini geri getirmek zorunda kaldım. İnternette biraz araştırma yaptım ve aşağıdaki çözümleri buldum:   WIN XP: Bilgisayarı Win XP cd’si ile başlatıyoruz. Kurtarma konsoluna girdikten sonra aşağıdaki komutları yürütüyoruz. FIXMBR FIXBOOT   WIN VISTA/7: Windows Vista/7 yükleme diskini disk sürücüye takın ve sonra bilgisayarı başlatın. Sorulduğunda bir tuşa basın. Dili, saati, para birimini, klavyeyi veya bir giriş yöntemini seçin ve sonra İleri'yi tıklatın. Bilgisayarınızı onarın'ı tıklatın. Onarmak istediğiniz işletim sistemini tıklatın ve sonra İleri'yi tıklatın. Sistem Kurtarma Seçenekleri iletişim kutusunda Komut İstemi'ni tıklatın. Bootrec.exe yazın ve ENTER tuşuna basın.   Bootrec.exe seçenekleri Bootrec.exe aracı aşağıdaki seçenekleri destekler. Durumunuza uygun seçeneği kullanın. Not BCD'yi yeniden oluşturarak başlatma sorununu gideremezseniz, BCD'yi dosyaya verip silebilir ve daha sonra bu seçeneği yeniden çalıştırabilirsiniz. Bunu yaptığınızda, BCD'nin tümüyle yeniden oluşturulmasını sağlamış olursunuz. Bunu yapmak için, Windows RE komut istemine aşağıdaki komutları yazın: bcdedit /export C:\BCD_Backup c: cd boot attrib bcd -s -h –r ren c:\boot\bcd bcd.old bootrec /RebuildBcd /FixMbr seçeneği, sistem bölümüne Windows Vista ile uyumlu bir MBR yazar. Bu seçenek varolan bölüm tablosunun üzerine yazmaz. Bu seçeneği, MBR bozulması sorunlarını gidermeniz veya standart olmayan bir kodu MBR'den kaldırmanız gerekiyorsa kullanın. /FixBoot seçeneği, Windows Vista ile uyumlu bir önyükleme kesimi kullanarak sistem bölümüne yeni bir önyükleme kesimi yazar. Bu seçeneği, aşağıdaki durumlardan biri doğruysa kullanın: Önyükleme kesimi standart olmayan bir Windows Vista önyükleme kesimiyle değiştirilmiştir. Önyükleme kesimi bozulmuştur. Windows Vista'nın ardından daha eski bir Windows işletim sistemi yüklenmiştir. Bu senaryoda, bilgisayar Windows Önyükleme Yöneticisi (Bootmgr.exe) yerine Windows NT Yükleyicisi (NTLDR) kullanılarak başlatılır.</LI> /ScanOs seçeneği, tüm diskleri Windows Vista ile uyumlu yüklemeler için tarar. Bu seçenek ayrıca BCD deposunda bulunmayan girdileri görüntüler. Bu seçeneği, Önyükleme Yöneticisi menüsünde listelenmeyen Windows Vista yüklemeleri varsa kullanın. /RebuildBcd seçeneği, tüm diskleri Windows Vista ile uyumlu yüklemeler için tarar. Bu seçenek ayrıca BCD deposuna eklemek istediğiniz yüklemeleri seçmenize olanak verir. Bu seçeneği, BCD'yi tümüyle yeniden oluşturmanız gerekiyorsa kullanın.   Kaynak: http://support.microsoft.com/kb/927392 Tags: , , , | Categories: Microsoft | Windows