Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Turhal Temizer
http://www.turhaltemizer.com
İletişme geçmek için
tıklayın
.
92
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
[Authorize]
Asp.Net
Asp.Net MVC
aspnetdb
Authorization
Authorize
güvenlik
membership
MVC
New Login
SQL Login
ASP.NET
Turhal Temizer
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
ASP.NET
Yayınlanma Tarihi
:
5.10.2009
Okunma Sayısı
:
38415
Yorum Sayısı
:
4
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA
21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak
21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi
21.11.2024
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
ASP.NET
/
Asp.Net MVC Framework - Güvenlik (Authorization)
Asp.Net MVC Framework - Güvenlik (Authorization)
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
Asp.Net MVC Framework ile neler yapabileceğimizi incelemeye Authentication konusuna değinerek devam ediyoruz. Web sayfalarının güvenliği denildiğinde akla gelen ilk iki sözden biridir
Authentication
. Son kullanıcıya gösterilecek olan sayfaların kimler tarafından görüntülenebileceği hangi roller yardımı ile görüntülenebileceği konusunda yapılan güvenlik işlemlerine denmektedir. Tabii web uygulamalarında bu kadar sık kullanılan bu işlemin (hatta olmazsa olmazlarındandır) MVC Framework ile hazırlanan uygulamalarda olmaması beklenemezdi. Authentication edilmiş olan kullanıcıların sayfaları görüntülerden nasıl etkiler alabileceğini ve Controller katmanında bu kontrolleri temel anlamında nasıl yapabileceğimizi açıklayacak olduğumuz bu yazı ile güvenlik konusuna da giriş yapmış oluyoruz.
Web Site Administrator Tools Kullanımı
Güvenlik konulu yazımızı incelerken ilk olarak yapılması gereken web sayfasını görüntüleyebilecek yetki seviyelerine ilişkin kişileri ve rolleri oluşturmak olacaktır. Hepimiz alışık olduğu gibi Visual Studio ortamında geliştirilen web uygulamalarında
Asp.Net Configuration
seçeneği yer almaktadır. Bunun yardımı ile web uygulamaları ile ilgili temel işlemlerin yapılabilmesi mümkündür. Ayrıca bu ekranın içerisinde karşımıza çıkan ekrana en genel anlamda Web Site yönetim aracıda denilmektedir. bu ekranı açabilmek için projenin içerisinde yer alan web uygulamasına bir kez tıklama yapıldıktan sonra üst tarafta beliren asp.net configuration seçeneğine tıklıyoruz.
Açılan Web site yönetim aracından güvenlik sekmesine tıkladıktan sonra yeni kullanıcı oluştur linkine tıklayarak site içerisinde belirti bir role sahip olacak olan kullanıcı oluşturuyoruz.
Not:
Sizlerin oluşturmuş olduğu web uygulamalarında eğer ki güvenlik sekmesine tıkladığınızda eğer ki veri kaynağını seçiniz şeklinde bir mesaj alıyorsanız bu web.config dosyanızın düzenlenmemiş olmasından olma ihtimali yüksektir. Bu durumda web site yönetim aracı sayfasını kapattıktan sonra MVC uygulamanızı bir kez çalıştırdıktan sonra tekrardan bu ekrana girerseniz sorunsuzca işlemleri yapabiliyor olabileceksiniz.
Kullanıcıyı sorunsuzca oluşturduktan sonra bu kullanıcıya bir rol atama işlemini yapalım. Bunun için ilk olarak güvenlik sekmesi içerisinde yer alan rolleri aktifleştir (enabled roles) linkine tıkladıktan sonra yeni bir rol oluştur (Create or Manage roles) linkine tıklayarak yeni bir rol oluşturuyoruz.
Not:
Eğer ki rol oluştururken
Asp.Net SQL Role Provider
içeren bir hata alırsanız Provider sekmesi içerisinde yer alan linklerden yararlanarak bu sorunu gerekli provider leri test ederek sorunu çözebilmeniz mümkündür.
Sorunsuzca rolü de oluşturduktan sonra bu rolü de kullanacak bir kullanıcı daha oluşturalım. Bunun için tekrardan yeni kullanıcı oluşturduğumuz ekrandan yararlanıyoruz. Yalnızca sağ tarafta yer alan roller bölümünden oluşturduğumuz rolü de seçtikten sonra kullanıcıyı oluştur butonuna tıklıyoruz.
Bu işlemde sorunsuz bir şekilde tamamlandı. Buraya kadar yaptıklarımıza kısaca özetlemek gerekirse, sertur ve turhal isimli iki kullanıcı oluşturduk. Ayrıca yonetici isimli bir tane de rol oluşturduk. Sonrasında turhal isimli kullanıcı yonetici rolüne atandı.
Authorization Gerekliliği
Site içerisinde kullanılan kimlik denetimlerine uyumlu kullanıcıları seçme işlemini Authorization ile gerçekliyoruz. Authorization işlemini kullanmak için Controller içerisinde yer alan action 'ların üst kısmına ekleyecek olduğumuz
[Authorize]
özniteliği yardımı ile sağlıyoruz.
Bu işlemi kısaca örneklemek gerekirse HomeController sınıfının içerisine SirketGuvenligi isimli yeni bir action ekliyerek buna
[Authorize]
özniteliğini ekleyerek kullanılabilmesine olanak tanıyoruz.
Controller\HomeControllers.cs
using System.Web.Mvc;
namespace Security1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
[Authorize]
public ActionResult SirketGuvenligi()
{
return View();
}
}
}
Eğer ki web sayfasında kullanıcı girişi yapılmadan adres çubuğuna
/Home/SirketGuvenligi
adresine giriş yapılmak istenirse, buna izin vermeyecek ve kullanıcı giriş ekranına yönlendirecektir. Bu ekran üzerinde de yeni bir kullanıcı oluşturulabilmesi imkanı vardır.
Ekran görüntüsünde de görüldüğü gibi girişe izin verilmemektedir. Eğer o kişinin kullanıcı adı ve şifresi varsa giriş yapabilecektir. Aksi durumda ise yeni bir kullanıcı oluşturarak yine bu sayfaya girebilmesi mümkün olacaktır. Şimdi herhangi bir kullanıcı ile web uygulamasına giriş yapıyor ve /Home/SirketGuvenligi isimli sayfaya giriş yapmayı deniyoruz. Bu durumda karşımıza aşağıdaki gibi bir sonuç çıkacaktır.
Sonuç istediğimiz gibi artık web sayfasına üye olmayan kullanıcılar bizim yetki ile girilen sayfalara girmesini engellemiş bulunuyoruz.
Kullanıcı ve Rol Authorizing
Controller içerisinde yer alan actionların üst kısmına
[Authorize]
özniteliğinden yararlanarak belirtmiş olduğumuz sayfalara kullanıcı girişi olmadan girilmesine engelleyebiliyoruz. Ayrıca bu özniteliğin özelliklerinden yararlanarak kullanıcı ve rol bazlı olarak giriş yapılabilmesine olanak tanıyabiliriz. Bu işlem için
SerturGuvenlik()
ve
YoneticiGuvenlik()
isimli actionları Controller sınıfına ekliyoruz
Controller\HomeControllers.cs
using System.Web.Mvc;
namespace Security1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
[Authorize]
public ActionResult SirketGuvenligi()
{
return View();
}
[Authorize(Users = "
Sertur
")]
public ActionResult SerturGuvenlik()
{
return View();
}
[Authorize(Roles = "
Yonetici
")]
public ActionResult YoneticiGuvenlik()
{
return View();
}
}
}
Bu işlemlerden sonra gerekli viewları oluşturduktan sonra her ikisi içinde kullanıcı girişi yaparak sayfaları denediğimizde yetkilendirmenin başarılı bir şekilde gerçekleştiğini gözlemleyebiliriz.
Örnek olarak Sertur kullanıcı ile sisteme giriş yapıldığında Home/YoneticiGuvenlik adresine giriş yapıldığında yetkiden ötürü girilemediği görülmektedir. Bir diğer örnek olarak ise, başka bir kullanıcı ile sisteme giriş yapıldıktan sonra SerturGuvenlik adresine giriş yapıldığında yine giriş yapılamadığı gözlemlenecektir.
Authentication Ayarlamak
MVC uygulamalarında var sayılan olarak kullanılan veri tabanını düzenleyebilme olanağımızda yer almaktadır. Geliştirilen uygulamaları incelediğimizde Login kontrollerinden alışık olduğumuz aspnetdb.mdf dosyasından yararlanıldığı gözlemlenebilecektir. Hazırlanmış olan projenin bütün dosyalarını görüntüle dediğimizde de veri tabanı dosyasının App_Data klasörünün içerisinde yer aldığı görebiliriz.
Eğer ki bizler yeni bir veri tabanı eklemek istersek
C:\Windows\Microsoft.NET\Framework\v2.0.50727
yolunda yer alan
aspnet_resql
uygulamasını çalıştırarak yeni bir ver tabanı oluşturabilinmesi mümkündür.
Bu işlem sonrasında SQL Server Management Studio yardımı ile
aspnetdb
veritabanını görüntüleyebilmemiz mümkündür. Sonrasında web.config dosyası içerisinde kendi SQL serverımızın çalıştığı sunucu adını, kullanıcı adını ve şifresini de vererek düzenleme yapabilir, kendi veri tabanımız ile çalışabilinmesi mümkündür.
Eğer ki bu veri tabanının çalışmasına özgü bir SQL kullanıcı oluşturulmak istenirse SQL Server Management Studio yardımı ile oluşturulabilinmesi mümkündür. Bunun için Security tabı içerisinde yer alan Logins klasörünün üzerine sağ tıklama yaptıktan sonra New login... seçeneğine tıklanması ile bu işlem başlanmış olunacaktır.
Bu seçeneğe tıkladıktan sonra karşımıza çıkan ekrandan aspnet_roles ve aspnet_membership şemalarını oluşturmuş olduğumuz ya da var olan bir kullanıcıya atayarak kullanılabilmesine olanak tanıyoruz.
Bu işlem sonrasında kendi kullanıcımıza da gerekli rol ve kullanıcı oluşturma,değiştirme ve silme yetkisi tanımlamış oluyoruz.
Bu yazımızda ASP.NET MVC uygulamalarında güvenlik amacı ile sayfalar arası kimlik denetimi sağlanabilmesi için kullanıcı ve rol oluşturduktan sonra bu bilgileri [Authorize] özniteliği yardımı ile nasıl kullanabileceğimizi incelemeye çalıştık.
Umarım yararlı olabilmiştir.
Turhal Temizer
[email protected]
http://turhal.blogspot.com
Makale:
Asp.Net MVC Framework - Güvenlik (Authorization) ASP.NET Turhal Temizer
Yazılan Yorumlar
Yorum Yaz
AĞU
19
2010
Turhal Temizer
/
üye hakkında
AspNetSqlMembershipProvider 'in sisteminizde tanimli olup olmadigina goz atmaniz gerekmektedir. Eger ki yksa bu tur bir hata alabilirsiniz...
TEM
27
2010
ekrem ekşi
/
üye hakkında
Asp.Net Configuration tıkladığımda açılan sayfada şu hatayı alıyorum (An error was encountered. Please return to the previous page and try again. ) ne yapmam gerekli?
EKİ
6
2009
Turhal Temizer
/
üye hakkında
Evet. Görüşe katılmamak elde değil. Hem kurumsal hem de orta ölçekli projelerde aspnet_membership kontrollerinin kullanıldığını görmek çok zor oluyor. Yazının asıl amacı da zaten yola çıkarken elimizde ne gibi bir seçenek var. Bunu merak eden geliştiricilerin işini görebilecek bir yazı şeklinde. Yazıların devamında daha farklı seneryolar ile örnekler çeşitlendirilebilir. Bilgilendirme için çook teşekkürler.
EKİ
6
2009
Oğuz YAĞMUR
/
üye hakkında
kucuk projelerde evet ama orta olcekli ya da kurumsal projelerde yeterince etkin olmayan bir yontem oldugunu dusunuyorum. uygulamanin da farkli veri tabanlarinda calisacagini dusunerek tasarlardigimi dikkate aldigimda yine bu yonten bana bagimlilik getirmekte. hazir yapilarin gunu kurtarmak adina "kullanisli" oldugunu dusunuyorum.
Sayfalar :
1
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl