SQL Server’da Üyelik Şeması Oluşturma (VB)
tarafından Scott Mitchell
Not
Bu makale yazıldığından beri, ASP.NET Üyelik sağlayıcılarının yerini ASP.NET Identity alır. Bu makalenin yazıldığı sırada öne çıkan Üyelik sağlayıcıları yerine ASP.NET Kimlik platformunu kullanmak için uygulamaları güncelleştirmenizi kesinlikle öneririz. ASP.NET Identity, ASP.NET Üyelik sistemine göre aşağıdakiler dahil olmak üzere çeşitli avantajlara sahiptir:
- Daha iyi performans
- Geliştirilmiş genişletilebilirlik ve test edilebilirlik
- OAuth, OpenID Connect ve iki öğeli kimlik doğrulaması desteği
- Talep Tabanlı Kimlik desteği
- ASP.Net Core ile daha iyi birlikte çalışabilirlik
Kodu İndir veya PDF İndir
Bu öğretici, SqlMembershipProvider'ı kullanmak için veritabanına gerekli şemayı ekleme tekniklerini inceleyerek başlar. Bundan sonra şemadaki anahtar tabloları inceleyecek ve bunların amacını ve önemini tartışacağız. Bu öğretici, üyelik çerçevesinin kullanması gereken sağlayıcıyı ASP.NET bir uygulamaya nasıl söyleyeceğinizi gösteren bir bakışla sona erer.
Giriş
Önceki iki öğretici, web sitesi ziyaretçilerini tanımlamak için form kimlik doğrulaması kullanılarak incelendi. Forms kimlik doğrulama çerçevesi, geliştiricilerin bir kullanıcıyı bir web sitesinde oturum açmasını ve kimlik doğrulama biletlerini kullanarak sayfa ziyaretlerinde bu kullanıcıyı anımsamalarını kolaylaştırır. sınıfı, FormsAuthentication
bileti oluşturmak ve ziyaretçinin tanımlama bilgilerine eklemek için yöntemler içerir. , FormsAuthenticationModule
tüm gelen istekleri inceler ve geçerli bir kimlik doğrulama biletine sahip olanlar için bir ve nesnesini geçerli istekle oluşturur ve FormsIdentity
ilişkilendirirGenericPrincipal
. Forms kimlik doğrulaması yalnızca bir ziyaretçiye oturum açarken ve sonraki isteklerde kullanıcının kimliğini belirlemek için bu bileti ayrıştırırken bir kimlik doğrulama bileti vermek için bir mekanizmadır. Bir web uygulamasının kullanıcı hesaplarını desteklemesi için yine de bir kullanıcı deposu uygulamamız ve kimlik bilgilerini doğrulamak, yeni kullanıcıları kaydetmek ve kullanıcı hesabıyla ilgili diğer görevlerin sayısızını gerçekleştirmek için işlevsellik eklememiz gerekir.
ASP.NET 2.0'a başlamadan önce geliştiriciler, kullanıcı hesabıyla ilgili tüm bu görevleri uygulama konusunda hesaba katılmıştı. Neyse ki ASP.NET ekibi bu eksiklikleri fark etti ve ASP.NET 2.0 ile Üyelik çerçevesini kullanıma sunmlandı. Üyelik çerçevesi, .NET Framework kullanıcı hesabıyla ilgili temel görevleri gerçekleştirmek için programlı bir arabirim sağlayan bir sınıf kümesidir. Bu çerçeve, geliştiricilerin özelleştirilmiş bir uygulamayı standartlaştırılmış BIR API'ye eklemesine olanak tanıyan sağlayıcı modelinin üzerine kurulmuştur.
Güvenlikle ilgili Temel Bilgiler ve ASP.NET Desteği öğreticisinde açıklandığı gibi, .NET Framework iki yerleşik Üyelik sağlayıcısıyla birlikte gönderilir: ActiveDirectoryMembershipProvider
ve SqlMembershipProvider
. Adından SqlMembershipProvider
da anlaşılacağı gibi, kullanıcı deposu olarak bir Microsoft SQL Server veritabanı kullanır. Bu sağlayıcıyı bir uygulamada kullanmak için sağlayıcıya depo olarak hangi veritabanının kullanılacağını söylememiz gerekir. Tahmin edebileceğiniz gibi, SqlMembershipProvider
kullanıcı deposu veritabanının belirli veritabanı tablolarına, görünümlerine ve saklı yordamlarına sahip olmasını bekler. Bu beklenen şemayı seçili veritabanına eklemeliyiz.
Bu öğretici, kullanmak SqlMembershipProvider
için veritabanına gerekli şemayı ekleme tekniklerini inceleyerek başlar. Bundan sonra şemadaki anahtar tabloları inceleyecek ve bunların amacını ve önemini tartışacağız. Bu öğretici, üyelik çerçevesinin kullanması gereken sağlayıcıyı ASP.NET bir uygulamaya nasıl söyleyeceğinizi gösteren bir bakışla sona erer.
Haydi başlayalım!
1. Adım: Kullanıcı Deposunun Nereye Yerleştirileceğine Karar Verme
bir ASP.NET uygulamasının verileri genellikle veritabanındaki bir dizi tabloda depolanır. Veritabanı şemasını SqlMembershipProvider
uygularken Üyelik şemasının uygulama verileriyle aynı veritabanına mı yoksa alternatif bir veritabanına mı yerleştirilmesi gerektiğine karar vermemiz gerekir.
Aşağıdaki nedenlerle Üyelik şemasını uygulama verileriyle aynı veritabanında bulmanızı öneririm:
- Bakımı , verileri tek bir veritabanında kapsüllenmiş olan bir uygulamanın anlaşılması, bakımı ve dağıtılması, iki ayrı veritabanına sahip bir uygulamadan daha kolaydır.
- İlişkisel Bütünlük , Üyelikle ilgili tabloları uygulama tablolarıyla aynı veritabanında bularak, Üyelikle ilgili tablolardaki birincil anahtarlar ve ilgili uygulama tablolarında yabancı anahtar kısıtlamaları oluşturmak mümkündür.
Kullanıcı deposunu ve uygulama verilerini ayrı veritabanlarına ayırmak, yalnızca her biri ayrı veritabanları kullanan birden çok uygulamanız varsa ancak ortak bir kullanıcı deposunu paylaşmanız gerekiyorsa mantıklıdır.
Veritabanı Oluşturma
İkinci öğreticiden bu yana derlediğimiz uygulamanın henüz bir veritabanına ihtiyacı yok. Ancak şimdi kullanıcı deposu için bir tane gerekir. Bir tane oluşturalım ve ardından sağlayıcının SqlMembershipProvider
gerektirdiği şemayı ekleyelim (bkz. 2. Adım).
Not
Bu öğretici serisi boyunca uygulama tablolarımızı ve SqlMembershipProvider
şemayı depolamak için bir Microsoft SQL Server 2005 Express Sürüm veritabanı kullanacağız. Bu karar iki nedenden dolayı alınmıştır: birincisi, maliyeti nedeniyle ücretsiz - Express Edition, SQL Server 2005'in en kolay erişilebilir sürümüdür; ikinci olarak SQL Server 2005 Express Sürüm veritabanları doğrudan web uygulamasının App_Data
klasörü, veritabanını ve web uygulamasını tek bir ZIP dosyasında birlikte paketlemeyi ve özel kurulum yönergeleri veya yapılandırma seçenekleri olmadan yeniden dağıtmayı çok kolaylaştırır. SQL Server'nin Express olmayan bir sürümünü kullanarak da devam etmek isterseniz, çekinmeyin. Adımlar neredeyse aynıdır. Şema, SqlMembershipProvider
Microsoft SQL Server 2000 ve daha yeni sürümleriyle çalışır.
Çözüm Gezgini klasöre sağ tıklayın App_Data
ve Yeni Öğe Ekle'yi seçin. (Projenizde bir App_Data
klasör görmüyorsanız, Çözüm Gezgini'da projeye sağ tıklayın, ASP.NET Klasör Ekle'yi seçin ve öğesini seçinApp_Data
.) Yeni Öğe Ekle iletişim kutusunda adlı SecurityTutorials.mdf
yeni bir SQL Veritabanı eklemeyi seçin. Bu öğreticide şemayı SqlMembershipProvider
bu veritabanına ekleyeceğiz; sonraki öğreticilerde uygulama verilerimizi yakalamak için ek tablolar oluşturacağız.
Şekil 1: Klasöre App_Data
Yeni SQL Veritabanı Adlandırılmış SecurityTutorials.mdf
Veritabanı Ekleme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Klasöre veritabanı ekleme, App_Data
veritabanını Otomatik olarak Veritabanı Gezgini görünümünde içerir. (Visual Studio'nun Express Edition olmayan sürümünde, Veritabanı Gezgini Sunucu Gezgini olarak adlandırılır.) Veritabanı Gezgini'ne gidin ve yeni eklenen SecurityTutorials
veritabanını genişletin. Veritabanı Gezgini'ni ekranda görmüyorsanız Görünüm menüsüne gidin ve Veritabanı Gezgini'ni seçin veya Ctrl+Alt+S tuşlarına basın. Şekil 2'de gösterildiği SecurityTutorials
gibi veritabanı boş olduğundan tablo, görünüm ve saklı yordam içermez.
Şekil 2: SecurityTutorials
Veritabanı Şu Anda Boş (Tam boyutlu görüntüyü görüntülemek için tıklayın)
2. Adım: ŞemayıSqlMembershipProvider
Veritabanına Ekleme
kullanıcı SqlMembershipProvider
deposu veritabanına belirli bir tablo, görünüm ve saklı yordam kümesinin yüklenmesini gerektirir. Bu gerekli veritabanı nesneleri araç kullanılarak aspnet_regsql.exe
eklenebilir. Bu dosya klasörde bulunur %WINDIR%\Microsoft.Net\Framework\v2.0.50727\
.
Not
Araç aspnet_regsql.exe
hem komut satırı işlevselliği hem de grafik kullanıcı arabirimi sunar. Grafik arabirim daha kullanıcı dostudur ve bu öğreticide inceleyeceğiz. Komut satırı arabirimi, derleme betikleri veya otomatik test senaryoları gibi şemanın eklenmesi SqlMembershipProvider
gerektiğinde kullanışlıdır.
Araçaspnet_regsql.exe
, belirtilen SQL Server veritabanına ASP.NET uygulama hizmetleri eklemek veya kaldırmak için kullanılır. ASP.NET uygulama hizmetleri SqlMembershipProvider
, diğer ASP.NET 2.0 çerçeveleri için SQL tabanlı sağlayıcıların şemalarıyla birlikte ve SqlRoleProvider
şemalarını kapsar. Araç için iki bit bilgi aspnet_regsql.exe
sağlamamız gerekir:
- Uygulama hizmetleri eklemek veya kaldırmak isteyip istemediğiniz ve
- Uygulama hizmetleri şemasının ekleneceği veya kaldırılacağı veritabanı
Veritabanının kullanılması istendiğinde araç, aspnet_regsql.exe
veritabanının bulunduğu sunucunun adını, veritabanına bağlanmak için güvenlik kimlik bilgilerini ve veritabanı adını sağlamamızı ister. express olmayan SQL Server Sürümünü kullanıyorsanız, ASP.NET bir web sayfası aracılığıyla veritabanıyla çalışırken bağlantı dizesi aracılığıyla sağlamanız gereken bilgilerle aynı olduğundan, bu bilgileri zaten biliyor olmalısınız. Ancak, klasördeki bir SQL Server 2005 Express Sürüm veritabanı kullanırken sunucu ve veritabanı App_Data
adını belirlemek biraz daha önemlidir.
Aşağıdaki bölümde, klasördeki bir SQL Server 2005 Express Sürüm veritabanı için sunucu ve veritabanı adını belirtmenin App_Data
basit bir yolu incelenmiştir. SQL Server 2005 Express Sürüm kullanmıyorsanız Uygulama Hizmetlerini Yükleme bölümüne atlayabilirsiniz.
Klasördeki bir SQL Server 2005 Express Sürüm Veritabanı için Sunucu ve VeritabanıApp_Data
Adını Belirleme
Aracı kullanabilmek aspnet_regsql.exe
için sunucu ve veritabanı adlarını bilmemiz gerekir. Sunucu adı şeklindedir localhost\InstanceName
. Büyük olasılıkla InstanceName şeklindedir SQLExpress
. Ancak, SQL Server 2005 Express Sürüm el ile yüklediyseniz (yani Visual Studio'yu yüklerken otomatik olarak yüklemediyseniz), farklı bir örnek adı seçmiş olmanız mümkündür.
Veritabanı adını belirlemek biraz daha karmaşıktır. Klasördeki veritabanları genellikle veritabanı dosyasının App_Data
yoluyla birlikte genel olarak benzersiz bir tanımlayıcı içeren bir veritabanı adına sahiptir. aracılığıyla aspnet_regsql.exe
uygulama hizmetleri şemasını eklemek için bu veritabanı adını belirlememiz gerekir.
Veritabanı adını belirlemenin en kolay yolu, SQL Server Management Studio aracılığıyla incelemektir. SQL Server Management Studio, SQL Server 2005 veritabanlarını yönetmek için grafik arabirim sağlar, ancak SQL Server 2005 Express Edition ile birlikte gelmez. İyi haber, ücretsiz SQL Server Management Studio Express Edition'ı indirebilmenizdir.
Not
Masaüstünüzde SQL Server 2005'in Express Edition olmayan bir sürümü de yüklüyse, büyük olasılıkla Management Studio'nun tam sürümü yüklüdür. Express Edition için aşağıda açıklanan adımları izleyerek veritabanı adını belirlemek için tam sürümü kullanabilirsiniz.
Veritabanı dosyasına Visual Studio tarafından uygulanan tüm kilitlerin kapalı olduğundan emin olmak için Visual Studio'yu kapatarak başlayın. Ardından SQL Server Management Studio başlatın ve SQL Server 2005 Express Sürüm için veritabanına bağlanınlocalhost\InstanceName
. Daha önce belirtildiği gibi, örnek adının olma olasılığı vardır SQLExpress
. Kimlik Doğrulaması seçeneği için Windows Kimlik Doğrulaması'nı seçin.
Şekil 3: SQL Server 2005 Express Sürüm Örneğine bağlanma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Management Studio, SQL Server 2005 Express Sürüm örneğine bağlandıktan sonra Veritabanları, Güvenlik ayarları, Sunucu Nesneleri vb. için klasörleri görüntüler. Veritabanları sekmesini genişletirseniz, veritabanının SecurityTutorials.mdf
veritabanı örneğinde kayıtlı olmadığını görürsünüz; önce veritabanını eklememiz gerekir.
Veritabanları klasörüne sağ tıklayın ve bağlam menüsünden Ekle'yi seçin. Bu, Veritabanları ekle iletişim kutusunu görüntüler. Buradan Ekle düğmesine tıklayın, veritabanına göz atın SecurityTutorials.mdf
ve Tamam'a tıklayın. Şekil 4'de veritabanı seçildikten sonra SecurityTutorials.mdf
Veritabanı Ekle iletişim kutusu gösterilmektedir. Şekil 5'de veritabanı başarıyla eklendikten sonra Management Studio'nun Nesne Gezgini gösterilmektedir.
Şekil 4: Veritabanını Ekleme SecurityTutorials.mdf
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 5: SecurityTutorials.mdf
Veritabanı Veritabanları Klasöründe Görünür (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 5'in gösterdiği gibi, veritabanının SecurityTutorials.mdf
adı oldukça uzaktır. Şimdi bunu daha akılda kalıcı (ve daha kolay yazılan) bir adla değiştirelim. Veritabanına sağ tıklayın, bağlam menüsünden Yeniden Adlandır'ı seçin ve veritabanını yeniden adlandırın SecurityTutorialsDatabase
. Bu işlem dosya adını değiştirmez, yalnızca veritabanının kendisini SQL Server için tanımlamak için kullandığı adı değiştirir.
Şekil 6: Veritabanını SecurityTutorialsDatabase
olarak yeniden adlandırın (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Bu noktada veritabanı dosyasının sunucu ve veritabanı adlarını SecurityTutorials.mdf
biliyoruz: localhost\InstanceName
sırasıyla ve SecurityTutorialsDatabase
. Artık araç aracılığıyla aspnet_regsql.exe
uygulama hizmetlerini yüklemeye hazırız.
Uygulama Hizmetlerini Yükleme
Aracı başlatmak aspnet_regsql.exe
için başlat menüsüne gidin ve Çalıştır'ı seçin. Metin kutusuna girin %WINDIR%\Microsoft.Net\Framework\v2.0.50727\aspnet_regsql.exe
ve Tamam'a tıklayın. Alternatif olarak, Uygun klasörde detaya gitmek ve dosyaya çift tıklamak için Windows Gezgini'ni aspnet_regsql.exe
kullanabilirsiniz. Her iki yaklaşım da aynı sonuçları elde eder.
aspnet_regsql.exe
Aracı komut satırı bağımsız değişkenleri olmadan çalıştırmak ASP.NET SQL Server Kurulum Sihirbazı grafik kullanıcı arabirimini başlatır. Sihirbaz, belirtilen veritabanındaki ASP.NET uygulama hizmetlerini eklemeyi veya kaldırmayı kolaylaştırır. Şekil 7'de gösterilen sihirbazın ilk ekranı aracın amacını açıklar.
Şekil 7: Üyelik Şeması Eklemek için Kurulum Sihirbazının Yaptığı ASP.NET SQL Server Kullanma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Sihirbazın ikinci adımı, uygulama hizmetlerini eklemek mi yoksa kaldırmak mı istediğimizi sorar. için gerekli tabloları, görünümleri ve saklı yordamları eklemek istediğimizden, Uygulama hizmetleri için SqlMembershipProvider
SQL Server yapılandır seçeneğini belirleyin. Daha sonra, bu şemayı veritabanınızdan kaldırmak istiyorsanız, bu sihirbazı yeniden çalıştırın, ancak bunun yerine Var olan bir veritabanından uygulama hizmetleri bilgilerini kaldır seçeneğini belirleyin.
Şekil 8: Application Services için SQL Server Yapılandır Seçeneğini belirleyin (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Üçüncü adım veritabanı bilgilerini ister: sunucu adı, kimlik doğrulama bilgileri ve veritabanı adı. Bu öğreticiyle birlikte takip ettiyseniz ve veritabanını öğesine eklediysenizSecurityTutorials.mdf
, veritabanına eklediyseniz localhost\InstanceName
ve olarak yeniden adlandırdıysanız SecurityTutorialsDatabase
aşağıdaki değerleri App_Data
kullanın:
- Sunucu:
localhost\InstanceName
- Windows kimlik doğrulaması
- Veritabanı:
SecurityTutorialsDatabase
Şekil 9: Veritabanı Bilgilerini girin (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Veritabanı bilgilerini girdikten sonra İleri'ye tıklayın. Son adım, atılacak adımları özetler. Uygulama hizmetlerini yüklemek için İleri'ye tıklayın ve sonra sihirbazı tamamlamak için Son'a tıklayın.
Not
Veritabanını eklemek ve veritabanı dosyasını yeniden adlandırmak için Management Studio kullandıysanız Visual Studio'yu yeniden açmadan önce veritabanını ayırdığınızdan ve Management Studio'yu kapatdığınızdan emin olun. Veritabanını ayırmak SecurityTutorialsDatabase
için veritabanı adına sağ tıklayın ve Görevler menüsünden Ayır'ı seçin.
Sihirbazı tamamlayıp Visual Studio'ya dönün ve Veritabanı Gezgini'ne gidin. Tablolar klasörünü genişletin. Adları ön ekiyle aspnet_
başlayan bir dizi tablo görmeniz gerekir. Benzer şekilde, Görünümler ve Saklı Yordamlar klasörleri altında çeşitli görünümler ve saklı yordamlar bulunabilir. Bu veritabanı nesneleri, uygulama hizmetleri şemasını oluşturur. 3. Adımda üyelik ve role özgü veritabanı nesnelerini inceleyeceğiz.
Şekil 10: Veritabanına Çeşitli Tablolar, Görünümler ve Saklı Yordamlar Eklendi (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Not
Aracın aspnet_regsql.exe
grafik kullanıcı arabirimi, uygulama hizmetleri şemasının tamamını yükler. Ancak komut satırından yürütürken aspnet_regsql.exe
hangi uygulama hizmetleri bileşenlerinin yükleneceğini (veya kaldırılacağını) belirtebilirsiniz. Bu nedenle, ve sağlayıcıları için SqlMembershipProvider
gerekli olan tabloları, görünümleri ve saklı yordamları eklemek istiyorsanız komut satırından komutunu çalıştırınaspnet_regsql.exe
.SqlRoleProvider
Alternatif olarak, tarafından aspnet_regsql.exe
kullanılan T-SQL oluşturma betiklerinin uygun alt kümesini el ile çalıştırabilirsiniz. Bu betikler , , InstallMembership.sql
, InstallRoles.sql
, InstallProfile.sql
, InstallSqlState.sql
ve gibi InstallCommon.sql
adlara sahip klasörde bulunurWINDIR%\Microsoft.Net\Framework\v2.0.50727\
.
Bu noktada, tarafından gereken veritabanı nesnelerini oluşturduk SqlMembershipProvider
. Ancak Yine de Üyelik çerçevesine veritabanını kullanması SqlMembershipProvider
gerektiğini (vs. gibiActiveDirectoryMembershipProvider
) ve veritabanını kullanması SecurityTutorials
gerektiğini söylememiz SqlMembershipProvider
gerekir. 4. Adım'da hangi sağlayıcının kullanılacağını ve seçili sağlayıcı ayarlarının nasıl özelleştirileceğini nasıl belirleyeceğinize göz atacağız. Ancak ilk olarak, yeni oluşturulan veritabanı nesnelerine daha ayrıntılı bir göz atalım.
3. Adım: Şemanın Temel Tablolarına Bakış
ASP.NET bir uygulamada Üyelik ve Roller çerçeveleriyle çalışırken, uygulama ayrıntıları sağlayıcı tarafından kapsüllenir. Gelecek öğreticilerde, .NET Framework Membership
ve Roles
sınıfları aracılığıyla bu çerçevelerle arabirim oluştururuz. Bu üst düzey API'leri kullanırken, hangi sorguların yürütüldiği veya ve SqlRoleProvider
tarafından SqlMembershipProvider
hangi tabloların değiştirildiği gibi alt düzey ayrıntılarla ilgilenmemiz gerekmez.
Bunu göz önünde bulundurarak, 2. Adımda oluşturulan veritabanı şemasını keşfetmeden Üyelik ve Roller çerçevelerini güvenle kullanabiliriz. Ancak, uygulama verilerini depolamak için tabloları oluştururken kullanıcılar veya rollerle ilgili varlıklar oluşturmamız gerekebilir. Uygulama veri tabloları ile 2. Adımda oluşturulan tablolar arasında yabancı anahtar kısıtlamaları oluştururken ve SqlRoleProvider
şemaları hakkında SqlMembershipProvider
bilgi sahibi olmanıza yardımcı olur. Ayrıca, bazı nadir durumlarda kullanıcı ve rol depoları ile doğrudan veritabanı düzeyinde (veya Roles
sınıfları yerineMembership
) arabirim oluşturmamız gerekebilir.
Kullanıcı Depoyu Uygulamalara Bölümleme
Üyelik ve Roller çerçeveleri, tek bir kullanıcı ve rol deposunun birçok farklı uygulama arasında paylaşılabilmesi için tasarlanmıştır. Üyelik veya Roller çerçevelerini kullanan bir ASP.NET uygulaması hangi uygulama bölümünün kullanılacağını belirtmelidir. Kısacası, birden çok web uygulaması aynı kullanıcı ve rol depolarını kullanabilir. Şekil 11'de üç uygulamaya ayrılmış kullanıcı ve rol depoları gösterilmektedir: HRSite, CustomerSite ve SalesSite. Bu üç web uygulamasının kendi benzersiz kullanıcıları ve rolleri vardır, ancak bunların hepsi kullanıcı hesabını ve rol bilgilerini aynı veritabanı tablolarında fiziksel olarak depolar.
Şekil 11: Kullanıcı Hesapları Birden Çok Uygulamada Bölümlenebilir (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Bu aspnet_Applications
bölümleri tanımlayan tablodur. Kullanıcı hesabı bilgilerini depolamak için veritabanını kullanan her uygulama bu tablodaki bir satırla temsil edilir. Tabloda aspnet_Applications
dört sütun vardır: ApplicationId
, ApplicationName
, LoweredApplicationName
ve Description
.ApplicationId
türündedir uniqueidentifier
ve tablonun birincil anahtarıdır; ApplicationName
her uygulama için benzersiz bir insan dostu ad sağlar.
Üyelik ve Rolle ilgili diğer tablolar içindeki aspnet_Applications
alana geri ApplicationId
bağlanır. Örneğin, aspnet_Users
her kullanıcı hesabı için bir kayıt içeren tabloda yabancı anahtar alanı vardır ApplicationId
; tablo için aspnet_Roles
ditto. ApplicationId
Bu tablolardaki alan, kullanıcı hesabının veya rolün ait olduğu uygulama bölümünü belirtir.
Kullanıcı Hesabı Bilgilerini Depolama
Kullanıcı hesabı bilgileri iki tabloda yer alır: aspnet_Users
ve aspnet_Membership
. Tabloda aspnet_Users
, temel kullanıcı hesabı bilgilerini barındıran alanlar bulunur. En ilgili üç sütun şunlardır:
UserId
UserName
ApplicationId
UserId
birincil anahtardır (ve türünde uniqueidentifier
). UserName
türündedir nvarchar(256)
ve parolayla birlikte kullanıcının kimlik bilgilerini oluşturur. (Kullanıcının parolası tabloda depolanır aspnet_Membership
.) ApplicationId
kullanıcı hesabını içindeki aspnet_Applications
belirli bir uygulamaya bağlar. ve ApplicationId
sütunlarında UserName
bileşik UNIQUE
bir kısıtlama vardır. Bu, belirli bir uygulamada her UserName'in benzersiz olmasını sağlar, ancak aynı UserName
özelliğin farklı uygulamalarda kullanılmasına izin verir.
Tabloda aspnet_Membership
kullanıcının parolası, e-posta adresi, son oturum açma tarihi ve saati gibi ek kullanıcı hesabı bilgileri yer alır. ve aspnet_Membership
tablolarındaki aspnet_Users
kayıtlar arasında bire bir yazışma vardır. Bu ilişki, tablonun birincil anahtarı olarak hizmet veren içindeki aspnet_Membership
alanı tarafından UserId
sağlanır. Tablo gibi aspnet_Users
, aspnet_Membership
bu bilgileri belirli bir ApplicationId
uygulama bölümüyle bağlayan bir alan içerir.
Parolaların Güvenliğini Sağlama
Parola bilgileri tabloda depolanır aspnet_Membership
. , SqlMembershipProvider
aşağıdaki üç tekniklerden birini kullanarak parolaların veritabanında depolanmasını sağlar:
- Temizle - parola veritabanında düz metin olarak depolanır. Bu seçeneği kullanmak kesinlikle önerilmez. Veritabanının güvenliği aşıldıysa ( arka kapıyı bulan bir bilgisayar korsanı veya veritabanı erişimi olan, küçümsemeyen bir çalışan tarafından olabilir) her kullanıcının kimlik bilgileri alma işlemi için oradadır.
- Karma - parolalar tek yönlü karma algoritması ve rastgele oluşturulan bir tuz değeri kullanılarak karma olarak oluşturulur. Bu karma değer (tuzla birlikte) veritabanında depolanır.
- Şifrelenmiş - parolanın şifrelenmiş bir sürümü veritabanında depolanır.
Kullanılan parola depolama tekniği, içinde Web.config
belirtilen ayarlara SqlMembershipProvider
bağlıdır. 4. Adım'da ayarları özelleştirmeyi SqlMembershipProvider
inceleyeceğiz. Varsayılan davranış, parola karması depolamaktır.
Parolayı depolamak için sorumlu sütunlar , PasswordFormat
ve PasswordSalt
sütunlarıdırPassword
. PasswordFormat
, değeri parolayı depolamak için kullanılan tekniği gösteren türdeki int
bir alandır: Clear için 0; Karma için 1; Şifrelenmiş için 2. PasswordSalt
kullanılan parola depolama tekniğinden bağımsız olarak rastgele oluşturulmuş bir dize atanır; değeri PasswordSalt
yalnızca parolanın karması hesaplanırken kullanılır. Son olarak, Password
sütun düz metin parola, parola karması veya şifrelenmiş parola gibi gerçek parola verilerini içerir.
Tablo 1'de, MySecret! parolasını depolarken bu üç sütunun çeşitli depolama teknikleri için nasıl görünebileceği gösterilmektedir. .
Depolama Tekniği<_o3a_p /> | Parola<_o3a_p /> | PasswordFormat<_o3a_p /> | PasswordSalt<_o3a_p /> |
---|---|---|---|
Temizle | MySecret! | 0 | tTnkPlesqissc2y2SMEygA== |
Hashed | 2oXm6sZHWbTHFgjgkGQsc2Ec9ZM= | 1 | wFgjUfhdUFOCKQiII61vtiQ== |
Şifreli | 62RZgDvhxykkqsMchZ0Yly7HS6onhpaoCYaRxV8g0F4CW56OXUU3e7Inza9j9BKp | 2 | LSRzhGS/aa/oqAXGLHJNBw== |
Tablo 1: MySecret Parolasını Depolarken Password-Related Alanları için Örnek Değerler!
Not
tarafından SqlMembershipProvider
kullanılan belirli şifreleme veya karma algoritması öğesindeki <machineKey>
ayarlar tarafından belirlenir.
Rolleri ve Rol İlişkilendirmelerini Depolama
Roller çerçevesi, geliştiricilerin bir rol kümesi tanımlamasına ve hangi kullanıcıların hangi rollere ait olduğunu belirtmesine olanak tanır. Bu bilgiler veritabanında iki tablo aracılığıyla yakalanır: aspnet_Roles
ve aspnet_UsersInRoles
. Tablodaki aspnet_Roles
her kayıt, belirli bir uygulama için bir rolü temsil eder. Tabloya aspnet_Users
çok benzer şekilde, aspnet_Roles
tablonun da tartışmamıza uygun üç sütunu vardır:
RoleId
RoleName
ApplicationId
RoleId
birincil anahtardır (ve türünde uniqueidentifier
). RoleName
türündedir nvarchar(256)
. Ayrıca ApplicationId
kullanıcı hesabını içindeki aspnet_Applications
belirli bir uygulamaya bağlar. ve sütunlarında bileşik UNIQUE
bir kısıtlama vardır ve ApplicationId
belirli bir uygulamada her rol adının benzersiz olmasını RoleName
sağlar.
Tablo, aspnet_UsersInRoles
kullanıcılar ve roller arasında eşleme görevi görür. Yalnızca iki sütun vardır : UserId
ve RoleId
- ve birlikte bileşik bir birincil anahtar oluştururlar.
4. Adım: Sağlayıcıyı Belirtme ve Ayarlarını Özelleştirme
Üyelik ve Roller çerçeveleri gibi sağlayıcı modelini destekleyen tüm çerçevelerde uygulama ayrıntıları eksiktir ve bunun yerine bu sorumluluğu bir sağlayıcı sınıfına devredebilirsiniz. Üyelik çerçevesi söz konusu olduğunda sınıfı, Membership
kullanıcı hesaplarını yönetmek için API'yi tanımlar, ancak herhangi bir kullanıcı deposuyla doğrudan etkileşim kurmaz. Bunun yerine, sınıfın Membership
yöntemleri isteği yapılandırılan sağlayıcıya devrediyor - biz kullanacağız SqlMembershipProvider
. sınıftaki yöntemlerden Membership
birini çağırdığımızda, Üyelik çerçevesi çağrısına SqlMembershipProvider
temsilci seçmeyi nasıl bilir?
sınıfı, Membership
Üyelik çerçevesi tarafından kullanılabilecek tüm kayıtlı sağlayıcı sınıflarına başvuru içeren bir Providers
özelliğe sahiptir. Her kayıtlı sağlayıcının ilişkili bir adı ve türü vardır. Ad, koleksiyondaki Providers
belirli bir sağlayıcıya başvurmak için insan dostu bir yol sunarken, tür sağlayıcı sınıfını tanımlar. Ayrıca, her kayıtlı sağlayıcı yapılandırma ayarlarını içerebilir. Üyelik çerçevesinin yapılandırma ayarları arasında PasswordFormat
ve requiresUniqueEmail
bulunur. tarafından SqlMembershipProvider
kullanılan yapılandırma ayarlarının tam listesi için bkz. Tablo 2.
Özelliğin Providers
içeriği web uygulamasının yapılandırma ayarları aracılığıyla belirtilir. Varsayılan olarak, tüm web uygulamalarının türünde SqlMembershipProvider
adlı AspNetSqlMembershipProvider
bir sağlayıcısı vardır. Bu varsayılan Üyelik sağlayıcısı konumunda machine.config
kayıtlıdır (konumunda %WINDIR%\Microsoft.Net\Framework\v2.0.50727\CONFIG
bulunur):
<membership>
<providers>
<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>
Yukarıdaki işaretlemede gösterildiği gibi,<membership>
alt öğe kayıtlı sağlayıcıları belirtirken <providers>
öğesi Üyelik çerçevesi için yapılandırma ayarlarını tanımlar. Sağlayıcılar veya öğeleri kullanılarak <add>
eklenebilir veya kaldırılabilir; şu anda kayıtlı olan tüm sağlayıcıları kaldırmak için öğesini kullanın<clear>
.<remove>
Yukarıdaki işaretlemede gösterildiği gibi türünde machine.config
SqlMembershipProvider
adlı AspNetSqlMembershipProvider
bir sağlayıcı ekler.
ve type
özniteliklerine name
ek olarak, <add>
öğesi çeşitli yapılandırma ayarları için değerleri tanımlayan öznitelikler içerir. Tablo 2'de her birinin açıklamasıyla birlikte kullanılabilir SqlMembershipProvider
özel yapılandırma ayarları listelenir.
Not
Tablo 2'de belirtilen tüm varsayılan değerler, sınıfında tanımlanan varsayılan değerlere başvurur SqlMembershipProvider
. içindeki AspNetSqlMembershipProvider
yapılandırma ayarlarının tümünün sınıfın varsayılan değerlerine SqlMembershipProvider
karşılık geldiğini unutmayın. Örneğin, üyelik sağlayıcısında belirtilmezse, requiresUniqueEmail
ayar varsayılan olarak true olur. Ancak, AspNetSqlMembershipProvider
bu varsayılan değeri açıkça değerini false
belirterek geçersiz kılar.
Ayar<_o3a_p /> | Açıklama<_o3a_p /> |
---|---|
ApplicationName |
Üyelik çerçevesinin tek bir kullanıcı deposunun birden çok uygulama arasında bölümlendirilmesine olanak tanıdığını hatırlayın. Bu ayar, Üyelik sağlayıcısı tarafından kullanılan uygulama bölümünün adını gösterir. Bu değer açıkça belirtilmezse, çalışma zamanında uygulamanın sanal kök yolunun değerine ayarlanır. |
commandTimeout |
SQL komut zaman aşımı değerini belirtir (saniye olarak). Varsayılan değer 30’dur. |
connectionStringName |
Kullanıcı deposu veritabanına bağlanmak için kullanılacak öğesindeki <connectionStrings> bağlantı dizesi adı. Bu değer gereklidir. |
description |
Kayıtlı sağlayıcının insan dostu bir açıklamasını sağlar. |
enablePasswordRetrieval |
Kullanıcıların unutulan parolalarını alıp alamayacağını belirtir. false varsayılan değerdir. |
enablePasswordReset |
Kullanıcıların parolalarını sıfırlamasına izin verilip verilmeyeceğini gösterir. varsayılan olarak true ayarlanır. |
maxInvalidPasswordAttempts |
Kullanıcı kilitlenmeden önce belirtilen passwordAttemptWindow süre boyunca belirli bir kullanıcı için gerçekleşebilecek en fazla başarısız oturum açma girişimi sayısı. Varsayılan değer 5'tir. |
minRequiredNonalphanumericCharacters |
Kullanıcının parolasında görünmesi gereken en az alfasayısal olmayan karakter sayısı. Bu değer 0 ile 128 arasında olmalıdır; varsayılan değer 1'dir. |
minRequiredPasswordLength |
Parolada gereken en az karakter sayısı. Bu değer 0 ile 128 arasında olmalıdır; varsayılan değer 7'dir. |
name |
Kayıtlı sağlayıcının adı. Bu değer gereklidir. |
passwordAttemptWindow |
Başarısız oturum açma girişimlerinin izlendiği dakika sayısı. Bir kullanıcı bu belirtilen pencere içinde geçersiz oturum açma kimlik bilgileri maxInvalidPasswordAttempts sağlarsa kilitlenir. Varsayılan değer 10'dur. |
PasswordFormat |
Parola depolama biçimi: Clear , Hashed veya Encrypted . Varsayılan değer: Hashed . |
passwordStrengthRegularExpression |
Bu normal ifade sağlanırsa, yeni bir hesap oluştururken veya parolasını değiştirirken kullanıcının seçtiği parolanın gücünü değerlendirmek için kullanılır. Varsayılan değer boş bir dizedir. |
requiresQuestionAndAnswer |
Kullanıcının parolasını alırken veya sıfırlarken güvenlik sorusunu yanıtlaması gerekip gerekmediğini belirtir. true varsayılan değerdir. |
requiresUniqueEmail |
Belirli bir uygulama bölümündeki tüm kullanıcı hesaplarının benzersiz bir e-posta adresine sahip olması gerekip gerekmediğini gösterir. true varsayılan değerdir. |
type |
Sağlayıcının türünü belirtir. Bu değer gereklidir. |
Tablo 2: Üyelik ve SqlMembershipProvider
Yapılandırma Ayarları
ek olarak, diğer Üyelik sağlayıcıları, dosyaya AspNetSqlMembershipProvider
benzer işaretlemeler eklenerek uygulama bazında Web.config
kaydedilebilir.
Not
Roller çerçevesi de aynı şekilde çalışır: içinde machine.config
varsayılan bir kayıtlı rol sağlayıcısı vardır ve kayıtlı sağlayıcılar uygulamasında Web.config
uygulamaya göre özelleştirilebilir. Roller çerçevesini ve yapılandırma işaretlemesini gelecek bir öğreticide ayrıntılı olarak inceleyeceğiz.
SqlMembershipProvider
Ayarları Özelleştirme
Varsayılan SqlMembershipProvider
(AspNetSqlMembershipProvider
) öğesinin özniteliği olarak LocalSqlServer
ayarlanmıştırconnectionStringName
. Sağlayıcı gibi AspNetSqlMembershipProvider
bağlantı dizesi adı LocalSqlServer
da içinde machine.config
tanımlanır.
<connectionStrings>
<add name="LocalSqlServer"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"/>
</connectionStrings>
Gördüğünüz gibi, bu bağlantı dizesi | konumunda bulunan bir SQL 2005 Express Edition veritabanını tanımlarDataDirectory|aspnetdb.mdf. | dizesiDataDirectory| çalışma zamanında dizinine işaret etmek için çevrildiği için ~/App_Data/
| veritabanı yoluDataDirectory|aspnetdb.mdf olarak ~/App_Data
/aspnet.mdf
çevrilir.
Uygulamamızın Web.config
dosyasında herhangi bir Üyelik sağlayıcısı bilgisi belirtmediysek, uygulama varsayılan kayıtlı Üyelik sağlayıcısını kullanır. AspNetSqlMembershipProvider
~/App_Data/aspnet.mdf
Veritabanı yoksa, ASP.NET çalışma zamanı bunu otomatik olarak oluşturur ve uygulama hizmetleri şemasını ekler. Ancak veritabanını kullanmak aspnet.mdf
istemiyoruz, bunun yerine 2. Adımda oluşturduğumuz veritabanını kullanmak SecurityTutorials.mdf
istiyoruz. Bu değişiklik iki yoldan biriyle gerçekleştirilebilir:
- için
LocalSqlServer
bir değer belirtinbağlantı dizesi adı.Web.config
içindeki bağlantı dizesi adı değerininLocalSqlServer
Web.config
üzerine yazarak varsayılan kayıtlı Üyelik sağlayıcısını (AspNetSqlMembershipProvider
) kullanabilir ve veritabanıylaSecurityTutorials.mdf
düzgün çalışmasını sağlayabiliriz. tarafındanAspNetSqlMembershipProvider
belirtilen yapılandırma ayarlarıyla memnunsanız bu yaklaşım uygundur. Bu teknik hakkında daha fazla bilgi için Scott Guthrie'ninASP.NET 2.0 Uygulama Hizmetlerini SQL Server 2000 veya SQL Server 2005 Kullanacak Şekilde Yapılandırma blog gönderisine bakın. - Türünde yeni bir kayıtlı sağlayıcı
SqlMembershipProvider
eklemeconnectionStringName
veayarınınSecurityTutorials.mdf
Veritabanı. Bu yaklaşım, veritabanı bağlantı dizesi ek olarak diğer yapılandırma özelliklerini özelleştirmek istediğiniz senaryolarda kullanışlıdır. Kendi projelerimde her zaman esnekliği ve okunabilirliği nedeniyle bu yaklaşımı kullanıyorum.
Veritabanına başvuran SecurityTutorials.mdf
yeni bir kayıtlı sağlayıcı ekleyebilmek için önce bölümünde Web.config
uygun bir bağlantı dizesi değeri <connectionStrings>
eklememiz gerekir. Aşağıdaki işaretleme, klasördeki App_Data
SQL Server 2005 Express Sürüm veritabanına başvuran adlı SecurityTutorialsConnectionString
yeni bir bağlantı dizesi SecurityTutorials.mdf
ekler.
<configuration>
<connectionStrings>
<add name="SecurityTutorialsConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
... Configuration markup removed for brevity ... </system.web>
</configuration>
Not
Alternatif bir veritabanı dosyası kullanıyorsanız, bağlantı dizesi gerektiği gibi güncelleştirin. Doğru bağlantı dizesi oluşturma hakkında daha fazla bilgi için bkz. ConnectionStrings.com.
Ardından, dosyaya aşağıdaki Üyelik yapılandırması işaretlemesini Web.config
ekleyin. Bu işaretleme adlı SecurityTutorialsSqlMembershipProvider
yeni bir sağlayıcı kaydeder.
<configuration>
<connectionStrings>
<add name="SecurityTutorialsConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<membership defaultProvider="SecurityTutorialsSqlMembershipProvider">
<providers>
<!-- Add a customized SqlMembershipProvider -->
<add name="SecurityTutorialsSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SecurityTutorialsConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="SecurityTutorials"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""/>
</providers>
</membership>
... Configuration markup removed for brevity ...
</system.web>
</configuration>
Yukarıdaki işaretleme, sağlayıcıyı kaydetmeye SecurityTutorialsSqlMembershipProvider
ek olarak varsayılan sağlayıcı (öğesindeki defaultProvider
<membership>
özniteliği aracılığıyla) olarak tanımlarSecurityTutorialsSqlMembershipProvider
. Üyelik çerçevesinin birden çok kayıtlı sağlayıcıya sahip olabileceğini hatırlayın. içinde ilk sağlayıcı machine.config
olarak kayıtlı olduğundanAspNetSqlMembershipProvider
, aksini belirtmediğimiz sürece varsayılan sağlayıcı olarak hizmet verir.
Şu anda uygulamamızda iki kayıtlı sağlayıcı vardır: AspNetSqlMembershipProvider
ve SecurityTutorialsSqlMembershipProvider
. Ancak sağlayıcıyı SecurityTutorialsSqlMembershipProvider
kaydetmeden önce, öğemizden hemen önce bir <clear />
öğe ekleyerek daha önce kaydedilmiş tüm sağlayıcıları temizlemiş olabilirdik <add>
. Bu, kayıtlı sağlayıcılar listesinden öğesini temizler AspNetSqlMembershipProvider
, yani SecurityTutorialsSqlMembershipProvider
tek kayıtlı Üyelik sağlayıcısı olur. Bu yaklaşımı kullandıysak, kayıtlı tek Üyelik sağlayıcısı olacağından varsayılan sağlayıcı olarak işaretlememiz SecurityTutorialsSqlMembershipProvider
gerekmez. kullanma <clear />
hakkında daha fazla bilgi için bkz. Sağlayıcı Eklerken Kullanma<clear />
.
ayarının SecurityTutorialsSqlMembershipProvider
connectionStringName
yeni eklenen SecurityTutorialsConnectionString
bağlantı dizesi adına başvurduğunu ve ayarının applicationName
SecurityTutorials değerine ayarlandığını unutmayın. Ayrıca, requiresUniqueEmail
ayar olarak true
ayarlanmıştır. Diğer tüm yapılandırma seçenekleri içindeki AspNetSqlMembershipProvider
değerlerle aynıdır. dilerseniz burada herhangi bir yapılandırma değişikliği yapabilirsiniz. Örneğin, bir yerine alfasayısal olmayan iki karakter gerektirerek veya parola uzunluğunu yedi yerine sekiz karaktere çıkararak parola gücünü artırabilirsiniz.
Not
Üyelik çerçevesinin tek bir kullanıcı deposunun birden çok uygulama arasında bölümlendirilmesine olanak tanıdığını hatırlayın. Üyelik sağlayıcısının applicationName
ayarı, sağlayıcının kullanıcı deposuyla çalışırken hangi uygulamayı kullandığını gösterir. açıkça ayarlanmadıysaapplicationName
, çalışma zamanında web uygulamasının applicationName
sanal kök yoluna atandığından yapılandırma ayarı için açıkça bir değer ayarlamanız önemlidir. Uygulamanın sanal kök yolu değişmediği sürece bu işlem düzgün çalışır, ancak uygulamayı farklı bir yola taşırsanız, applicationName
ayar da değişir. Bu durumda Üyelik sağlayıcısı daha önce kullanılandan farklı bir uygulama bölümüyle çalışmaya başlar. Taşımadan önce oluşturulan kullanıcı hesapları farklı bir uygulama bölümünde yer alır ve bu kullanıcılar artık sitede oturum açamaz. Bu konuyla ilgili daha ayrıntılı bir tartışma için bkz. ASP.NET 2.0 Üyeliğini ve Diğer sağlayıcıları Yapılandırırken Özelliği Her Zaman AyarlamaapplicationName
.
Özet
Bu noktada, yapılandırılmış uygulama hizmetlerini (SecurityTutorials.mdf
) içeren bir veritabanımız var ve web uygulamamızı Üyelik çerçevesinin yeni kaydettiğimiz sağlayıcıyı SecurityTutorialsSqlMembershipProvider
kullanması için yapılandırdık. Bu kayıtlı sağlayıcı türündedir SqlMembershipProvider
ve connectionStringName
uygun bağlantı dizesi (SecurityTutorialsConnectionString
) olarak ayarlanmıştır ve değeri açıkça ayarlanmıştırapplicationName
.
Artık uygulamamızdan Üyelik çerçevesini kullanmaya hazırız. Sonraki öğreticide yeni kullanıcı hesaplarının nasıl oluşturulacağını inceleyeceğiz. Bunun ardından kullanıcıların kimliğini doğrulamayı, kullanıcı tabanlı yetkilendirme gerçekleştirmeyi ve kullanıcıyla ilgili ek bilgileri veritabanında depolamayı keşfedeceğiz.
Mutlu Programlama!
Daha Fazla Bilgi
Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:
- ASP.NET 2.0 Üyeliğini ve Diğer sağlayıcıları Yapılandırırken Her Zaman Özelliğini Ayarla
applicationName
- ASP.NET 2.0 Uygulama Hizmetlerini SQL Server 2000 veya SQL Server 2005 Kullanacak Şekilde Yapılandırma
- SQL Server Management Studio’yu indirme
- ASP.NET 2.0s Üyeliğini, Rollerini ve Profilini inceleme
<add>
Üyelik sağlayıcıları için Öğesi<membership>
Öğesi<providers>
Üyelik Öğesi- Sağlayıcı Eklerken Kullanma
<clear />
- Doğrudan
SqlMembershipProvider
Bu Öğreticide Yer Alan Konularda Video Eğitimi
Yazar hakkında
Birden çok ASP/ASP.NET kitabının yazarı ve 4GuysFromRolla.com kurucusu Scott Mitchell, 1998'den beri Microsoft Web teknolojileriyle çalışmaktadır. Scott bağımsız bir danışman, eğitmen ve yazar olarak çalışmaktadır. Son kitabı Sams Teach Yourself ASP.NET 24 Saat içinde 2.0. Scott'a adresinden mitchell@4guysfromrolla.com veya adresinden blogu http://ScottOnWriting.NETaracılığıyla ulaşılabilir.
Özel Teşekkürler
Bu öğretici serisi birçok yararlı gözden geçiren tarafından gözden geçirildi. Bu öğreticinin baş gözden geçireni Alicja Maziarz oldu. Yaklaşan MSDN makalelerimi gözden geçirmek istiyor musunuz? Öyleyse, bana bir satır mitchell@4GuysFromRolla.combırakın.