Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile uygulamalarımızda kullanıcı kimlik doğrulama ve yetkilendirme işlemlerini yönetmek için kullandığımız Membership özelliğini yakından inceleyeceğiz. Membership, kullanıcıları kaydetme, oturum açma, şifreleri yönetme ve rolleri belirleme gibi işlemleri kolaylaştıran bir dizi araç sunar.
Membership Nedir?
Membership, .NET Framework'ün bir parçası olarak gelen ve web uygulamalarında kullanıcı yönetimi için standart bir çözüm sunan bir sistemdir. Bu sistem, geliştiricilerin kullanıcı kimlik doğrulama ve yetkilendirme işlemlerini güvenli ve verimli bir şekilde gerçekleştirmesine yardımcı olur.
Membership Kurulumu
Membership'i kullanabilmek için öncelikle
veritabanında gerekli tabloların ve stored procedure'lerin oluşturulması
gerekir. Bu işlem için aspnet_regsql aracı kullanılır.
- Visual Studio Command
Prompt'u Açın:
- Başlat -> Programlar -> Visual Studio -> Visual Studio
Tools -> Visual Studio Command Prompt yolunu izleyerek Visual Studio
Command Prompt'u açın.
- aspnet_regsql Aracını
Çalıştırın:
- Komut satırına aspnet_regsql yazıp Enter tuşuna basın. Bu komut, Membership ile ilgili veritabanı nesnelerini oluşturmak için bir kurulum sihirbazı başlatır. Sihirbazı takip ederek gerekli adımları tamamlayın.
Web.config Dosyasında
Yapılandırma
Membership'i kullanabilmek için web.config dosyasında
da bazı yapılandırmalar yapmamız gerekir. İşte temel yapılandırma adımları:
- Bağlantı Dizesini
Ayarlayın:
- web.config dosyasında connectionStrings bölümüne veritabanı
bağlantı dizesini ekleyin.
- Membership
Sağlayıcısını Yapılandırın:
- system.web bölümünde membership ve providers bölümlerini ekleyerek
varsayılan sağlayıcıyı (genellikle SqlMembershipProvider) yapılandırın.
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=YourDatabaseName;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<membership defaultProvider="SqlProvider">
<providers>
<add name="SqlProvider"
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers"
connectionStringName="DefaultConnection"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
Membership Sınıfını
Kullanma
System.Web.Security ad alanında bulunan Membership
sınıfı, kullanıcı yönetimi ile ilgili birçok metot ve özellik sunar. İşte bazı
temel kullanım örnekleri:
- Yeni Kullanıcı Oluşturma:
MembershipCreateStatus status;
MembershipUser newUser = Membership.CreateUser("kullaniciadi", "sifre", "[email protected]", null, null, true, out status);
if (status == MembershipCreateStatus.Success)
{
// Kullanıcı başarıyla oluşturuldu
}
else
{
// Hata oluştu
}
- Kullanıcı Girişi Doğrulama:
bool isValid = Membership.ValidateUser("kullaniciadi", "sifre");
if (isValid)
{
// Kullanıcı doğrulandı
}
else
{
// Kullanıcı doğrulanamadı
}
- Oturum Açmış Kullanıcı Bilgilerini Alma:
MembershipUser currentUser = Membership.GetUser();
Guid userKey = (Guid)currentUser.ProviderUserKey; // Kullanıcının benzersiz kimliği
string username = currentUser.UserName;
string email = currentUser.Email;
- Kullanıcı Şifresini Sıfırlama:
string sifreSoru = Membership.GetUser("kullaniciadi").PasswordQuestion;
string yeniSifre = Membership.ResetPassword("kullaniciadi",sifreSoru);
Rol Yönetimi
Membership, kullanıcıları rollerle gruplandırmayı da
destekler. Rol tabanlı yetkilendirme ile belirli sayfalara veya işlevlere
yalnızca belirli rollere sahip kullanıcıların erişmesini sağlayabiliriz.
- Rol Oluşturma:
if (!Roles.RoleExists("Admin"))
{
Roles.CreateRole("Admin");
}
- Kullanıcıyı Role Ekleme:
Roles.AddUserToRole("kullaniciadi",
"Admin");
- Kullanıcının Rolünü Kontrol Etme:
if (Roles.IsUserInRole("kullaniciadi", "Admin"))
{
// Kullanıcı Admin rolünde
}
- Sayfaya Yetki Verme (Web.config):
<location path="AdminSayfasi.aspx">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Önemli Notlar
- machine.config dosyası, .NET Framework'ün genel
yapılandırma ayarlarını içerir. Bu dosyayı doğrudan değiştirmek yerine,
uygulama düzeyindeki web.config dosyasını kullanmanız önerilir.
- aspnet_regsql aracı, Membership ile ilgili
veritabanı nesnelerini kurmak için kullanılır. Bu aracı çalıştırmadan
Membership'i kullanmaya çalışırsanız hatalarla karşılaşırsınız.
- web.config dosyasındaki <authorization> bölümünde, yetkilendirme kurallarını tanımlayabilirsiniz. allow ve deny öğeleri ile belirli kullanıcılara veya rollere erişim izni verebilir veya erişimi engelleyebilirsiniz. allow içinde tanımlanan roller erişime sahip olur. Eğer altta `deny users="*" satırı varsa allow içinde belirtilen rol dışındakilerin erişimi engellenmiş olur.
Sonuç
C# .NET Framework 4 ile Membership, web uygulamalarında kullanıcı yönetimi, kimlik doğrulama ve yetkilendirme işlemlerini kolaylaştıran güçlü bir sistemdir. Bu makalede, Membership'in temel kavramlarını, kurulumunu ve kullanımını ele aldık. Umarım bu bilgiler, C# .NET Framework 4 ile uygulamalar geliştirirken size yardımcı olur. Bir sonraki yazımızda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz.
Webkolog'u takipte kalın!
Hepinize bol kodlu günler dilerim!
0 yorum:
Yorum Gönder