Üyelik

Microsoft tarafından

Not

Bu makale yazıldığından beri, ASP.NET Üyeliği 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 çeşitli avantajlara sahiptir, örneğin:

  • 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

ASP.NET Üyelik, ASP.NET 1.x'ten Forms kimlik doğrulama modelinin başarısına göre oluşturulur. ASP.NET Forms kimlik doğrulaması, oturum açma formunu ASP.NET uygulamanıza eklemek ve kullanıcıları bir veritabanı veya başka bir veri deposuna karşı doğrulamak için kullanışlı bir yol sağlar.

ASP.NET Üyelik, ASP.NET 1.x'ten Forms kimlik doğrulama modelinin başarısına göre oluşturulur. ASP.NET Forms kimlik doğrulaması, oturum açma formunu ASP.NET uygulamanıza eklemek ve kullanıcıları bir veritabanı veya başka bir veri deposuna karşı doğrulamak için kullanışlı bir yol sağlar. FormsAuthentication sınıfının üyeleri kimlik doğrulaması için tanımlama bilgilerini işlemeyi, geçerli bir oturum açmayı denetlemeyi, kullanıcının oturumunu kapatmayı vb. mümkün hale getirir. Ancak, bir ASP.NET 1.x uygulamasında Forms kimlik doğrulaması uygulamak için makul miktarda kod gerekebilir.

ASP.NET 2.0'da üyelik, yalnızca Forms kimlik doğrulamasının kullanılmasına kıyasla önemli bir ilerlemedir. (Üyelik, Forms kimlik doğrulamasıyla birlikte kullanıldığında en güçlü özelliktir, ancak Forms kimlik doğrulaması kullanmak bir gereksinim değildir.) Yakında göreceğiniz gibi, çok fazla kod yazmadan güçlü bir üyelik sistemi uygulamak için ASP.NET Üyeliği ve ASP.NET 2.0'daki oturum açma denetimlerini kullanabilirsiniz.

ASP.NET 2.0'da Üyelik Uygulama

Üyelik dört adım izlenerek uygulanır. Dahil olan birçok alt adımın yanı sıra uygulanabilecek isteğe bağlı yapılandırma olduğunu unutmayın. Bu adımlar, üyeliği yapılandırmanın büyük resmini göstermeye yöneliktir.

  1. Üyelik veritabanınızı oluşturun (üyelik deposu olarak SQL Server kullanılıyorsa.)

  2. Uygulama yapılandırma dosyalarınızda üyelik seçeneklerini belirtin. (Üyelik varsayılan olarak etkindir.)

  3. Kullanmak istediğiniz üyelik deposunun türünü belirleyin. Seçenekler şunlardır:

    • Microsoft SQL Server (sürüm 7.0 veya üzeri)
    • Active Directory Deposu
    • Özel üyelik sağlayıcısı
  4. Uygulamayı ASP.NET Forms kimlik doğrulaması için yapılandırın. Bir kez daha Üyelik, Forms kimlik doğrulamasından yararlanacak şekilde tasarlanmıştır, ancak Forms kimlik doğrulaması kullanmak bir gereksinim değildir.

  5. Üyelik için kullanıcı hesapları tanımlayın ve isterseniz rolleri yapılandırın.

Üyelik Veritabanı Oluşturma

Üyelik deponuz olarak SQL Server 7.0 veya üzerini kullanıyorsanız, veritabanınızı yapılandırmak için aspnet_regsql yardımcı programını (visual studio .NET 2005 Komut İstemi'nden en kolay şekilde kullanılabilir) kullanabilirsiniz. aspnet_regsql yardımcı programı, komut istemi aracı olarak veya GUI sihirbazı aracılığıyla kullanılabilir. Sihirbaz yöntemi, veritabanınızı yapılandırmanın en kolay yoludur. Sihirbaza erişmek için aşağıdaki komutu çalıştırmanız yeterlidir:

aspnet_regsql W

Bu komutu çalıştırdıktan sonra, aşağıda gösterildiği gibi ASP.NET SQL Server Kurulum Sihirbazı gösterilir.

A S P nokta NET S Q L Sunucu Kurulum Sihirbazı'nı gösteren ekran görüntüsü.

Şekil 1

ASP.NET SQL Server Kurulum Sihirbazı, Web sitesini sihirbazda belirttiğiniz örnekte oluşturur. Ancak ASP.NET veritabanınıza bağlanmak için machine.config dosyasındaki bağlantı dizesini kullanır. Varsayılan olarak, bu bağlantı dizesi SQL Server 2005 örneğine işaret eder, bu nedenle SQL Server 2000 veya SQL Server 7.0 örneği kullanıyorsanız, machine.config dosyasındaki bağlantı dizesini değiştirmeniz gerekir. Bu bağlantı dizesi burada bulunabilir:

<configuration>
    <connectionStrings>
      <add name="LocalSqlServer"
         connectionString="data source=(local);
         Integrated Security=SSPI;Initial Catalog=aspnetdb;"  
         providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

Ne yazık ki, bağlantı dizesini değiştirmezseniz ASP.NET size açıklayıcı bir hata vermez. Veritabanını oluşturmadığınızdan şikayet etmeye devam eder. Yukarıdaki örnekte bağlantı dizesini yerel SQL Server 2000 örneğime işaret eden şekilde değiştirdim.

YapılandırmaYı Belirtme ve Kullanıcı ve Rol Ekleme

Üyelik'i yapılandırmanın bir sonraki adımı, uygulamanın web.config dosyasına gerekli bilgileri eklemektir. ASP.NET 1.x'te, lowerCamelCase kullanımı ve IntelliSense'in olmaması nedeniyle web.config dosyasını değiştirmek bazen zordu. Visual Studio .NET 2005, yapılandırma dosyaları için IntelliSense ile görevi çok daha kolay hale getirir, ancak ASP.NET 2.0, yapılandırma dosyalarını düzenlemek için bir Web arabirimi sağlayarak bir adım ileri gider.

Aşağıda gösterildiği gibi Çözüm Gezgini araç çubuğundaki ASP.NET Yapılandırması düğmesine tıklayarak Web arabirimini başlatabilirsiniz. Web arabirimini, Oturum açma denetimleri eklendiğinde görüntülenen açılır pencereler aracılığıyla da başlatabilirsiniz.

web.config seçili Çözüm Gezgini araç çubuğunu gösteren ekran görüntüsü.

Şekil 2

Bu, aşağıda gösterilen ASP.NET Web Sitesi Yönetim Aracı'nı başlatır. ASP.NET Web Sitesi Yönetimi, uygulama ayarlarını yönetmeyi kolaylaştıran dört sekmeli bir arabirimdir. Aşağıdaki sekmeler kullanılabilir:

  • Giriş Ekranı
  • Güvenlik Kullanıcıları, rolleri ve erişimi yapılandırın.
  • Uygulama Uygulama ayarlarını yapılandırın.
  • Sağlayıcı Uygulama üyeliği sağlayıcınızı yapılandırın ve test edin.

Web Sitesi Yönetim Aracı kolayca yeni kullanıcılar oluşturmanıza, yeni roller oluşturmanıza ve kullanıcıları ve rolleri yönetmenize olanak tanır. Bu özellik Windows arabiriminde kullanılamaz. Windows arabirimi, yetkilendirme ayarlarını kolayca tanımlamanıza ve Web Sitesi Yönetim Aracı'nda bulunmayan sağlayıcılar, özellikler eklemenize, silmenize ve yönetmenize olanak tanır.

Windows arabirimini başlatmak için Internet Information Services ek bileşenini açın, uygulamanıza sağ tıklayın ve Özellikler'i seçin. ASP.NET sekmesine ve ardından Yapılandırmayı Düzenle düğmesine tıklayın. (Yapılandırmayı Düzenle düğmesinin etkinleştirilmesi için uygulamanın ASP.NET 2.0 altında çalışması gerekir. ASP.NET sürümünü ASP.NET iletişim kutusunda da yapılandırabilirsiniz.) ASP.NET Yapılandırma Ayarları iletişim kutusu aşağıda gösterildiği gibi görüntülenir.

A S P noktası N E T Yapılandırma Ayarları iletişim kutusundaki Genel sekmesini gösteren ekran görüntüsü.

Şekil 3

Genel sekmesinde bağlantı dizeleri ve uygulama ayarları listelenir. italik ayarlar üst yapılandırma dosyasında tanımlanır (machine.config veya daha üst düzeyde bir web.config) ve italik olmayan ayarlar uygulama yapılandırma dosyasından alınır. Uygulama düzeyinde bir ayar eklenir, kaldırılır veya düzenlenirse, ASP.NET ayarı devralındığı yapılandırma dosyasından kaldırmak yerine web.config uygulama düzeylerinde ayarı ekler, kaldırır veya değiştirir.

Kimlik Doğrulama sekmesi aşağıda gösterilmiştir. Üyelik ayarlarınızı burada yapılandıracaksınız. Form kimlik doğrulama ayarları, üyelik sağlayıcıları ve rol sağlayıcıları burada yapılandırılabilir.

A S P nokta N E T Yapılandırmaları iletişim kutusunda Kimlik Doğrulaması sekmesini gösteren ekran görüntüsü.

Şekil 4

Uygulamanızda Üyelik Uygulama

Uygulamanızda ASP.NET 2.0 üyeliği uygulamanın en kolay yolu, sağlanan Oturum Açma denetimlerini kullanmaktır. Bu yöntem, hiçbir kod yazmadan ASP.NET 2.0 üyeliğinin temellerini uygulamanıza olanak tanır.

Aşağıdaki Oturum Açma denetimleri ASP.NET 2.0'da kullanılabilir:

Oturum Açma Denetimi

Oturum açma denetimi, birinin üyelik sisteminizde oturum açması için bir arabirim sağlar. Size bir kullanıcı adı ve parola metin kutusu ve bir oturum açma düğmesi sağlar. Henüz bunu yapmamış kişilere kaydolma bağlantısı, kullanıcının sonraki ziyaretlerde otomatik olarak oturum açmasına izin veren bir onay kutusu, parola anımsatıcısı bağlantısı gibi diğer birçok yaygın özellik. Oturum açma denetiminin tüm özellikleri, denetimin özellikleri aracılığıyla özelleştirilebilir.

ASP.NET 1.x'te geliştiricilerin Forms kimlik doğrulamasını kullanırken arama yapmak için makul miktarda kod yazmaları gerekiyordu. ASP.NET 2.0 üyeliğiyle, herhangi bir kod yazmadan kullanıcıları doğrulayabilirsiniz. ASP.NET sizin için kullanıcının aramasını otomatik olarak yapar. (Oturum açma denetimini ASP.NET üyeliği kullanmadan kullanıyorsanız, kullanıcıyı doğrulamak için OnAuthenticate yöntemini kullanabilirsiniz.)

LoginView Denetimi

LoginView denetimi, varsayılan olarak iki şablon sağlayan şablonlu bir denetimdir; AnonymousTemplate ve LoggedInTemplate. Görüntülenen şablon, kullanıcının üyelik sisteminizde oturum açıp açmadığına göre belirlenir. Bu denetim genellikle kullanıcı henüz oturum açmadığında oturum açma denetimini ve kullanıcı oturum açtığında LoginStatus denetimini ve/veya diğer oturum açma denetimlerini görüntülemek için kullanılır. ASP.NET uygulamanızda rol yönetimi kullanıyorsanız LoginView denetimi, kullanıcı rolüne göre belirli bir şablonu görüntüleyebilir. (ASP.NET rol yönetimi hakkında daha fazla bilgi daha sonra ele alınacaktır.)

PasswordRecovery Denetimi

PasswordRecovery denetimi, kullanıcıların geçerli parolasını içeren bir e-posta almasına veya parolasını sıfırlamasına olanak tanır. Düz metin ve şifrelenmiş parolalar kurtarılabilir ve kullanıcılara e-posta ile gönderilebilir. Parola karma ise kurtarılamaz. Bunun yerine kullanıcının parola sıfırlaması yapması gerekir.

LoginStatus Denetimi

LoginStatus denetimi, oturum açmamış kullanıcılara bir oturum açma göstergesi ve o anda oturum açmış olan kullanıcılara bir oturum kapatma göstergesi görüntülemek için kullanılır. Hangi göstergenin görüntüleneceğini belirlemek için Request.IsAuthenticated özelliği kullanılır. LoginStatus denetimi tarafından görüntülenen gösterge metin ( LoginText ve LogoutText özellikleri aracılığıyla uygulanır) veya resimler ( LoginImageUrl ve LogoutImageUrl özellikleriyle uygulanır) olabilir.

Kullanıcı LoginStatus denetimi aracılığıyla oturum açtığında, LogoutPageUrl özelliği tarafından belirtilen URL'ye yönlendirilir. Bu özellik ayarlanmamışsa geçerli sayfa yenilenir. Site büyük olasılıkla Forms kimlik doğrulaması tarafından korunduğundan, geçerli sayfanın yenilenmesi kullanıcıyı sitenin oturum açma sayfasına yönlendirir.

LoginName Denetimi

LoginName denetimi, sitede oturum açmış olan kullanıcının kullanıcı adını görüntüler.

CreateUserWizard Denetimi

CreateUserWizard denetimi, kullanıcılara üyelik sisteminize kaydolmaları için kullanışlı bir yol sağlar. Aşağıda gösterilen arabirim aracılığıyla adımlar ekleyebilirsiniz (WizardSteps koleksiyonu olarak uygulanır).

Yeni Hesabınıza Kaydolun açılan menüsüyle Birlikte Kullanıcı Sihirbazı Görevleri Oluştur iletişim kutusunu gösteren ekran görüntüsü.

Şekil 5

CreateUserWizard, Sihirbaz sınıfından türetilen ve aşağıdaki şablonları sağlayan şablonlu bir denetimdir:

  • Headertemplate Bu şablon, sihirbazın üst bilgisinin görünümünü denetler.
  • Sidebartemplate Bu şablon, sihirbazın kenar çubuğunun görünümünü denetler.
  • StartNavigationTemplate Bu şablon, başlangıç adımındaki sihirbazın gezinti görünümünü denetler.
  • StepNavigationTemplate Bu şablon, başlangıç veya bitiş adımında değilken gezinti alanının görünümünü denetler.
  • FinishNavigationTemplate Bu şablon, bitiş adımındayken gezinti alanının görünümünü denetler.

Ayrıca, Sihirbaza eklediğiniz her adım için, ASP.NET bu adım için hem ContentTemplate hem de CustomNavigationTemplate içeren özel bir şablon oluşturur. CreateUserWizard'ı özelleştirmeyle ilgili tüm ayrıntılar için VS.NET 2005 belgelerine bakın:

ChangePassword Denetimi

ChangePassword denetimi, kullanıcıların parolasını değiştirmesine olanak tanır. DisplayUserName özelliği true ise (varsayılan olarak yanlıştır), kullanıcı oturum açmadığında parolasını değiştirebilir. Kullanıcı zaten oturum açmışsa ve DisplayUserName özelliği true ise, kullanıcı kullanıcının kimliğini bilmesi durumunda oturum açmamış başka bir kullanıcının parolasını değiştirebilir.

Kullanıcıların oturum açmak zorunda kalmadan parolaları değiştirebilmesini istiyorsanız ChangePassword denetiminin görüntülendiği sayfanın anonim erişime izin verdiğinden emin olmanız gerektiğini unutmayın. Açıkçası, kullanıcıların parolalarını değiştirmek için eski parolalarını sağlamaları gerekecek.

Rol Yönetimi

Rol yönetimi, kullanıcıları belirli bir role atamanıza ve ardından söz konusu role göre belirli dosya veya klasörlere erişimi kısıtlamanıza olanak tanır. Rol yönetimi ayrıca program aracılığıyla birinin rolünü belirleyebilmeniz veya belirli bir roldeki tüm kullanıcıları belirleyip uygun şekilde yanıt verebilmeniz için bir API sağlar.

Rol yönetimi, ASP.NET üyeliğinin bir gereksinimi veya rol yönetimini kullanmak için üyelik gereksinimi değildir. Ancak, ikisi birbirine güzel bir şekilde destek olur ve geliştiricilerin bunları birbirleriyle birlikte kullanmaları muhtemeldir.

Uygulamanızda rol yönetimini etkinleştirmek için web.config dosyanızda aşağıdaki değişikliği yapın:

<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="All" />

cacheRolesInCookie özniteliği true olarak ayarlandığında, ASP.NET istemcideki bir tanımlama bilgisinde kullanıcı rolü üyeliğini önbelleğe alır. Bu, rol aramalarının RoleProvider'a çağrı yapılmadan gerçekleşmesini sağlar. Bu özniteliği kullanırken geliştiricilerin cookieProtection özniteliğinin Tümü olarak ayarlandığından emin olması teşvik edilir. (Bu varsayılan ayardır.) Bu, tanımlama bilgisi verilerinin şifrelenmesini sağlar ve tanımlama bilgileri içeriğinin değiştirilmediğinden emin olunmasını sağlar. Roller Web Sitesi Yönetim Aracı kullanılarak eklenebilir. Rolleri kolayca tanımlamanızı, bu rollere göre sitenin bölümlerine erişimi yapılandırmanızı ve kullanıcıları rollere atamanızı sağlar.

Rol Ekle düğmesiyle A S P nokta N E T Web Sitesi Yönetim Aracı'nı gösteren ekran görüntüsü.

Şekil 6

Yukarıda gösterildiği gibi, rolün adı girilip Rol Ekle'ye tıklanarak yeni roller eklenebilir. Mevcut roller listesinde uygun bağlantıya tıklayarak mevcut roller yönetilebilir veya silinebilir.

Bir rolü yönetirken, aşağıda gösterildiği gibi kullanıcıları ekleyebilir veya kaldırabilirsiniz.

Kullanıcı Bul düğmesiyle A S P nokta N E T Web Sitesi Yönetim Aracı'nı gösteren ekran görüntüsü.

Şekil 7

Kullanıcı Rolde onay kutusunu işaretleyerek, kullanıcıyı belirli bir role kolayca ekleyebilirsiniz. ASP.NET üyelik veritabanınızı uygun girişlerle otomatik olarak güncelleştirir. Uygulamanız için erişim kurallarını da yapılandırmak isteyeceksiniz. ASP.NET 1.x geliştiricileri bunu web.config dosyasındaki <yetkilendirme> öğesi aracılığıyla yapmaya alışkındır ve bu seçenek ASP.NET 2.0'da da kullanılabilir. Ancak, aşağıda gösterildiği gibi Web Sitesi Yönetim Aracı'nı kullanarak erişim kurallarını yönetmek daha kolaydır.

Kullanıcılar ve Roller altında seçili öğelerle A S P nokta N E T Web Sitesi Yönetimi aracını gösteren ekran görüntüsü.

Şekil 8

Bu durumda, Yönetim klasörü vurgulanır (araç bunu açık gri olarak vurguladığı için görülmesi zordur) ve Yöneticiler rolüne erişim verilmiştir. Diğer tüm kullanıcılar reddedilir. Kural seçmek için baş simgesine tıklayabilir ve ardından kuralları düzenlemek için Yukarı Taşı ve Aşağı Taşı düğmelerini kullanabilirsiniz. ASP.NET <yetkilendirme> öğesinde olduğu gibi, kurallar göründükleri sırayla işlenir. Başka bir deyişle, yukarıdaki görüntüde yer alan kuralların sırası tersine çevrilmişse, ASP.NET karşılaşacağı ilk kural herkesi klasöre reddeden kural olacağından kimse Yönetim klasörüne erişemezse.

ASP.NET 2.0, erişim kuralı belirttiğiniz klasöre bir web.config dosyası ekler. Erişim kuralları yapılandırma dosyası veya Web Sitesi Yönetim Aracı aracılığıyla düzenlenebilir. Başka bir deyişle, Web Sitesi Yönetim Aracı yalnızca yapılandırma dosyasının kullanıcı dostu bir ortamda düzenlenebildiği bir arabirimdir.

Kodda Rolleri Kullanma

Rol yönetimi API'si sürüm 1.x'ten bu yana değişmemiştir. IsInRole yöntemi, bir kullanıcının belirli bir rolde olup olmadığını belirlemek için kullanılır.

if (User.IsInRole(Administrators)) {
    btnManageSite.Visible = true;
}

ASP.NET ayrıca geçerli bağlamın üyesi olarak bir RolePrincipal örneği oluşturur. RolePrincipal nesnesi, kullanıcının ait olduğu tüm rolleri almak için aşağıdaki gibi kullanılabilir:

string[] userRoles = ((RolePrincipal)User).GetRoles();

LoginView Denetimi ile RoleGroups Kullanma

Artık rol yönetimi ve üyelik hakkında bilgi sahibi olduğunuz için LoginView denetiminin ASP.NET 2.0'da bu özelliknden nasıl yararlandığını kısaca tartışalım. Daha önce açıklandığı gibi LoginView denetimi, varsayılan olarak iki şablon içeren şablonlu bir denetimdir; AnonymousTemplate ve LoggedInTemplate. LoginView Görevleri iletişim kutusunda, RoleGroup'ları düzenlemenizi sağlayan bir bağlantı (aşağıda gösterilmiştir).

Oturum Açma Görünümü Görevleri iletişim kutusundaki Oturum Açma Görünümü denetimini gösteren ve açılan menü ve Rol Grubu'nun seçili olduğu ekran görüntüsü.

Şekil 9

Her RoleGroup nesnesi, RoleGroup'un hangi rollere uygulandığını tanımlayan bir dize dizisi içerir. LoginView denetimine yeni bir RoleGroup eklemek için RoleGroup'ları Düzenle bağlantısına tıklayın. Yukarıdaki görüntüde, Yöneticiler için yeni bir RoleGroup eklemiş olduğumu görebilirsiniz. Görünümler açılan listesinden RoleGroup 'u (RoleGroup[0]) seçerek, yalnızca Yöneticiler rolünün üyelerine görüntülenecek bir şablon yapılandırabilirim. Aşağıdaki görüntüde Satış rolünün ve Dağıtım rolünün üyeleri için geçerli olan yeni bir RoleGroup ekledim. Bu, LoginView Görevleri iletişim kutusundaki Görünümler açılan listesine ikinci bir RoleGroup ekler ve bu şablona eklenen her şey Satış veya Dağıtım rolündeki herhangi bir kullanıcı tarafından görülebilir.

Yöneticiler'in seçildiğini belirten bir açılan menü ile Rol Grubu Koleksiyonu Düzenleyicisi iletişim kutusunu gösteren ekran görüntüsü.

Şekil 10

Mevcut Üyelik Sağlayıcısını Geçersiz Kılma

ASP.NET üyeliğinin işlevselliğini genişletmenin birkaç yolu vardır. Her şeyden önce, SqlMembershipProvider sınıfının mevcut işlevselliğini, sınıfından devralarak ve yöntemlerini geçersiz kılarak değiştirebilirsiniz. Örneğin, kullanıcılar oluşturulduğunda kendi işlevselliğinizi uygulamak istiyorsanız, SqlMembershipProvider'dan devralan kendi sınıfınızı aşağıdaki gibi oluşturabilirsiniz:

public class jForumMembershipProvider : SqlMembershipProvider {
    public jForumMembershipProvider() {

    }
    public override MembershipUser CreateUser(
    string username,
    string password,
    string email,
    string passwordQuestion,
    string passwordAnswer,
    bool isApproved,
    object providerUserKey,
    out MembershipCreateStatus status) {
        // your own implementation
        return base.CreateUser(
        username,
        password,
        email,
        passwordQuestion,
        passwordAnswer,
        isApproved,
        providerUserKey,
        out status);
    }
}

Öte yandan, kendi sağlayıcınızı oluşturmak istiyorsanız (örneğin, üyelik bilgilerinizi bir Access veritabanında depolamak için) kendi sağlayıcınızı oluşturabilirsiniz.

Kendi Üyelik Sağlayıcınızı Oluşturma

Kendi üyelik sağlayıcınızı oluşturmak için öncelikle MembershipProvider sınıfından devralan bir sınıf oluşturmanız gerekir. VB.NET kullanıyorsanız, Visual Studio 2005 geçersiz kılmanız gereken tüm yöntemlerin saptamalarını ekler. C# kullanıyorsanız, saplamaları eklemek size bağlı.

Aşağıdakileri geçersiz kılmanız gerekir:

  • ApplicationName özelliği
  • ChangePassword işlevi
  • ChangePasswordQuestionAndAnswer işlevi
  • CreateUser işlevi
  • DeleteUser işlevi
  • EnablePasswordReset özelliği
  • EnablePasswordRetrieval özelliği
  • FindUsersByEmail işlevi
  • FindUsersByName işlevi
  • GetAllUsers işlevi
  • GetNumberOfUsersOnline işlevi
  • GetPassword işlevi
  • GetUser işlevi
  • GetUserNameByEmail işlevi
  • MaxInvalidPasswordAttempts özelliği
  • MinRequiredNonAlphanumericCharacters özelliği
  • MinRequiredPasswordLength özelliği
  • PasswordAttemptWindow özelliği
  • PasswordFormat özelliği
  • PasswordStrengthRegularExpression özelliği
  • RequiresQuestionAndAnswer özelliği
  • RequiresUniqueEmail özelliği
  • ResetPassword işlevi
  • Kullanıcı işlevinin kilidini açma
  • UpdateUser işlevi
  • ValidateUser işlevi

Bu, C# geliştiricisi olarak uygulamak için oldukça iyi bir listedir. sınıfını herhangi bir uygulama olmadan VB.NET'de oluşturmayı ve ardından kodu C# 'ye dönüştürmek için .NET Reflector veya benzer bir araç kullanmayı daha kolay bulabilirsiniz.

Bağlantı dizesi ve diğer özellikler Initialize yönteminde varsayılan değerlerine ayarlanmalıdır. (Sağlayıcı çalışma zamanında yüklendiğinde Initialize yöntemi tetiklenir.) Initialize yönteminin ikinci parametresi System.Collections.Specialized.NameValueCollection türündedir ve web.config dosyasındaki özel sağlayıcınızla ilişkili add> öğesine başvurudur<. Bu giriş aşağıdaki gibi görünür:

<system.web>
  <authentication mode="Forms"/>
  <membership
  defaultProvider="jForumCustomMembershipProvider" >
    <providers>
      <add name="jForumCustomMembershipProvider"
      type="jForumCustomMembershipProvider"
      requiresQuestionAndAnswer="true"
      connectionString="Provider=Microsoft.Jet.
        OLEDB.4.0;Data Source=C:\jForumCustomMembershipProvider\
        App_Data\Members.mdb;Persist Security
        Info=False"
        />
    </providers>
  </membership>
</system.web>

Aşağıda Initialize yönteminin bir örneği verilmiştir.

public override void Initialize(string name,
    System.Collections.Specialized.NameValueCollection config) {

    if (config["requiresQuestionAndAnswer"])
        _requiresQuestionAndAnswer = true;
    _connString = config["connectionString"];
    base.Initialize(name, config);
}

Kullanıcının oturum açma formunuzu gönderdiğinde doğrulanması için ValidateUser yöntemini kullanmanız gerekir. Kullanıcı Oturum açma denetimindeki oturum açma düğmesine tıkladığında bu yöntem tetikler. Bu yöntemde kullanıcı aramasını yapacak kodunuzu yerleştirebilirsiniz.

Gördüğünüz gibi, kendi üyelik sağlayıcınızı yazmak zor değildir ve ASP.NET 2.0'ın bu güçlü işlevselliğini genişletmenize olanak tanır.