ActiveDirectoryMembershipProvider Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Active Directory ve Active Directory Uygulama Modu sunucularında ASP.NET bir uygulama için üyelik bilgilerinin depolanmasını yönetir.
public ref class ActiveDirectoryMembershipProvider : System::Web::Security::MembershipProvider
public class ActiveDirectoryMembershipProvider : System.Web.Security.MembershipProvider
type ActiveDirectoryMembershipProvider = class
inherit MembershipProvider
Public Class ActiveDirectoryMembershipProvider
Inherits MembershipProvider
- Devralma
Örnekler
Aşağıdaki örnekte, örnek kullanmak ActiveDirectoryMembershipProvider üzere yapılandırılmış bir ASP.NET uygulamasının Web.config dosyası gösterilmektedir. Active Directory öznitelikleri için varsayılan eşlemeleri kullanır. Soru-cevap ile parola sıfırlama güvenliğini veya arama yöntemlerini çağırma özelliğini desteklemez.
<configuration>
<connectionStrings>
<add name="ADService" connectionString="LDAP://ldapServer/" />
</connectionStrings>
<system.web>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web, Version=2.0.3600, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
</system.web>
</configuration>
Açıklamalar
Bu sınıf, bir Active Directory (AD) veya Active Directory Uygulama Modu (ADAM) sunucusu kullanarak bir ASP.NET uygulaması için üyelik hizmetleri sağlamak üzere ve MembershipUser sınıfları tarafından Membership kullanılır.
Uyarı
ADAM sunucusu kullanmak için belirli bir yapılandırma gerekir. Daha fazla bilgi için aşağıdaki ADAM Yapılandırması bölümüne bakın.
Önemli
Örnek ActiveDirectoryMembershipProvider yalnızca ASP.NET tam güven ilkesi varsayılan yapılandırmasında çalışır. Örneği kısmi güven düzeyinde kullanmak ActiveDirectoryMembershipProvider için, uygulamanız için uygun güven ilkesi dosyasında değişiklik yapmanız veya GAC'de dağıtılan bir "korumalı alan" derlemesi oluşturmanız gerekir.
sınıfı ActiveDirectoryMembershipProvider çalıştırmak için sınırsız DirectoryServicesPermission izin gerektirir. Bu izin, ASP.NET ile sağlanan kısmi güven ilkesi dosyalarının hiçbirine eklenmez. Kısmi güven ilkesi dosyasına izin eklenmesi DirectoryServicesPermission sınıfın ActiveDirectoryMembershipProvider kullanımını etkinleştirse de, bunu yapmak ad alanı sınıflarını ASP.NET sayfalarınızda çalışan tüm kodlar için kullanılabilir hale getirir System.DirectoryServices . Bu seçenek güvenli, kilitli modda çalışması gereken web sunucuları için önerilmez.
Alternatif olarak, sınıfını çağıran bir "sandbox" derlemesi ActiveDirectoryMembershipProvider oluşturabilirsiniz. Bu derleme, yöntem çağrılarını sınıfa ActiveDirectoryMembershipProvider ileten bir sarmalayıcı sınıfı veya sınıfından ActiveDirectoryMembershipProvider türetilen bir sınıf içerebilir. Her iki durumda da sarmalayıcı sınıfı sınırsız izin onaylamalıdır DirectoryServicesPermission . GAC'de korumalı alan derlemesini dağıtın ve derlemeyi (APTCA) özniteliğiyle AllowPartiallyTrustedCallersAttribute işaretleyin. Bu, kısmen güvenilen ASP.NET kodunuzun sarmalayıcı sınıfınızı çağırmasına olanak tanır ve sarmalayıcı sınıfı dahili olarak kısıtlanmamış DirectoryServicesPermission izni onay verdiğinden sarmalayıcı sınıfınız sağlayıcıyı başarıyla çağırabilecektir
kullanılacak Active Directory sunucusunu, Active Directory etki alanını veya ADAM uygulama bölümünü tanımlayan Web.config dosyasında connectionStrings Öğesi (ASP.NET Ayarlar Şeması) girdisi oluşturmanız gerekir. Sağlayıcı yalnızca etki alanı kapsamında veya bir etki alanı içindeki bir alt kapsamda çalışır. Aşağıdaki tabloda izin verilen bağlantı dizeleri ve kullanılan kapsam listelenir.
| Bağlantı dizesi | Scope |
|---|---|
|
<LDAP:// etki alanı veya sunucu>:[bağlantı noktası] Bağlantı noktası numarası ADAM için isteğe bağlıdır ve Active Directory için gerekli değildir. |
Sağlayıcı belirtilen etki alanına veya sunucuya karşı çalışır. AD ile kullanıcı oluşturma ve silme işlemi varsayılan kullanıcılar kapsayıcısında gerçekleştirilir. Tüm arama yöntemleri de dahil olmak üzere diğer tüm işlemler etki alanı için varsayılan adlandırma bağlamında köklenir. Bağlantı dizesi belirli bir sunucu yerine bir Active Directory etki alanı belirtiyorsa ve EnablePasswordReset özelliği ise true, ActiveDirectoryMembershipProvider parola değişikliklerinin etkili olduğundan ve yöntem çağrıldığında kullanılabilir olduğundan emin olmak için örnek her zaman etki alanının PDC rolüyle sunucuya ValidateUser bağlanır.ADAM kullanılırken bu bağlantı dizesine izin verilmez ve bir NotSupportedExceptionoluşturur. |
|
<LDAP:// etki alanı veya sunucu>:[bağlantı noktası]/<kapsayıcı dn> Bağlantı noktası numarası ADAM için isteğe bağlıdır ve Active Directory için gerekli değildir. |
Sağlayıcı belirtilen etki alanına veya sunucuya karşı çalışır. Kullanıcı oluşturma ve silme işlemi yalnızca belirtilen kapsayıcıda yapılır. Tüm arama yöntemleri dahil olmak üzere diğer tüm işlemler, kapsayıcıda kökenli alt ağaç aramaları gerçekleştirir. ADAM sunucuları için kapsayıcı, uygulama bölümünün kökünü veya bir uygulama bölümü içindeki kapsayıcıyı belirtir. Bağlantı dizesinin performansı geliştirmek için belirli bir kapsayıcı tanımlamasını öneririz. |
Örnek, ActiveDirectoryMembershipProvider dizin özniteliklerini özelliklerle ActiveDirectoryMembershipUser eşler. Web.config dosyasında öznitelik eşlemesi yapılmazsa varsayılan öznitelikler kullanılır. Öznitelik eşlemeleri hakkında daha fazla bilgi için sınıf belgelerindeki tek tek özelliklere ActiveDirectoryMembershipUser bakın.
Aşağıdaki tabloda özellikleri ve bunların varsayılan öznitelik eşlemeleri listelemektedir ActiveDirectoryMembershipUser .
Önemli
ActiveDirectoryMembershipProvider sınıfı, sağlayıcı özniteliklerinin dizindeki kullanıcı nesnesinin çekirdek öznitelikleriyle eşlenmediğini açıkça denetlemez. Dizindeki hassas bilgilerin eşlenen öznitelikler aracılığıyla gösterilmediğinden emin olmanız gerekir.
| Mülkiyet | Varsayılan dizin özniteliği | Eşlenebilir mi? |
|---|---|---|
| ProviderUserKey | securityIdentifier (güvenlikTanımlayıcı) | Hayır |
| UserName | userPrincipalName | Evet, ancak userPrincipalName veya sAMAccountName olmalıdır |
| Comment | yorum | Hayır |
| CreationDate | whenCreated | Hayır |
| e-posta | Evet, ancak Unicode Dizesi türünde tek değerli bir öznitelik olmalıdır. | |
| LastActivityDate | Yok | tarafından ActiveDirectoryMembershipProviderdesteklenmez. |
| LastLoginDate | Yok | tarafından ActiveDirectoryMembershipProviderdesteklenmez. |
| LastPasswordChangedDate | pwdLastSet | Hayır |
| PasswordQuestion | yok | Evet, ancak Unicode Dizesi türünde tek değerli bir öznitelik olmalıdır. |
| IsApproved | Kullanıcı-Account-Control (AD) mDS-UserAccountDisabled (ADAM) |
Hayır |
| IsLockedOut | lockoutTime ve AD kilitleme süresinden hesaplanan (Windows 2000'de AD) msDS-User-Account-Control-Computed (Windows Server 2003'te AD) msDS-User-Account-Control-Computed (ADAM) |
Hayır |
| LastLockoutDate | Çok fazla hatalı parola denemesi nedeniyle kullanıcı kilitlendiyse kilitleme süresi özniteliği döndürülür. Çok fazla hatalı parola yanıtı girişimi nedeniyle kullanıcı kilitlendiyse, tarafından attributeMapFailedPasswordAnswerLockoutTime tanımlanan öznitelikte depolanan değer döndürülür.Hem hatalı parola hem de çok fazla hatalı parola denemesi nedeniyle kullanıcı kilitlendiyse, en son tarih/saat değeri döndürülür. Hesap kilitli değilse, SQL uyumluluğu için 1/1/1754 döndürür. |
Hayır |
hem hem de RequiresQuestionAndAnswerEnablePasswordReset özellikleri olduğundatrueActiveDirectoryMembershipProvider, sınıfı kullanıcının önceden belirlenmiş bir soruyu yanıtlamasını gerektirerek parola sıfırlama güvenliğini destekler. Soruyu ve yanıtı desteklemek için, uygulama yapılandırma dosyasındaki üyelik sağlayıcıları için add Öğesini (ASP.NET Ayarlar Şeması) kullanarak aşağıdaki yapılandırma özniteliklerini ayarlamanız gerekir.
| Yapılandırma özniteliği | Öznitelik türü |
|---|---|
attributeMapPasswordQuestion |
Unicode Dizesi türünde tek değerli bir öznitelik olmalıdır. |
attributeMapPasswordAnswer |
Unicode Dizesi türünde tek değerli bir öznitelik olmalıdır. |
attributeMapFailedPasswordAnswerCount |
Tamsayı türünde tek değerli bir öznitelik olmalıdır. |
attributeMapFailedPasswordAnswerTime |
Büyük Tamsayı/Aralık türünde tek değerli bir öznitelik olmalıdır. |
attributeMapFailedPasswordAnswerLockoutTime |
Büyük Tamsayı/Aralık türünde tek değerli bir öznitelik olmalıdır. |
Parola sıfırlama güvenliğini kullanma hakkında daha fazla bilgi için özelliğine RequiresQuestionAndAnswer bakın.
Active Directory bağlantıları
ActiveDirectoryMembershipProvider Sınıfı bir Active Directory veya Active Directory Uygulama Modu (ADAM) sunucusuna bağlanmak için kullanıldığında, uygulama yapılandırma dosyasındaki üyelik sağlayıcıları için add Öğesi (ASP.NET Ayarlar Şeması) kullanılarak ayarlanan öznitelik, connectionProtection sınıfın ActiveDirectoryMembershipProvider bağlantı üzerinden gerçekleştirebileceği işlem türlerini kısıtlayabilir.
connectionProtection özniteliği, örneğin Active Directory veya ADAM sunucusuna bağlantı oluşturmak için kullanacağı yöntemleri ActiveDirectoryMembershipProvider de belirler.
Aşağıdaki tabloda, bir Active Directory'ye bağlanırken özniteliğin connectionProtection etkisi gösterilmektedir.
connectionProtection ayar |
Etki |
|---|---|
| None | sınıfı ActiveDirectoryMembershipProvider , bu kısıtlamalarla bir Active Directory'ye bağlanır. - Parola ayarlayan herhangi bir yöntem başarısız olur. Active Directory, parolaları değiştirirken güvenli bir bağlantı gerektirir. - Uygulama yapılandırma dosyasında üyelik için sağlayıcılar için add Öğesini (ASP.NET Ayarlar Şeması) kullanarak ve connectionPassword özniteliklerini açıkça ayarlamanız connectionUsername gerekir; aksi takdirde ActiveDirectoryMembershipProvider örnek bir ProviderException özel durum oluşturur. |
Secure |
sınıfı, ActiveDirectoryMembershipProvider SSL kullanarak Active Directory'ye bağlanmayı dener. SSL başarısız olursa, oturum açma ve kapatma kullanarak Active Directory'ye ikinci bir bağlanma denemesi yapılır. Her iki deneme de başarısız olursa örnek ActiveDirectoryMembershipProvider bir ProviderException özel durum oluşturur. Hem işlem kimlik bilgileri hem de açık kimlik bilgileri desteklenir. |
Aşağıdaki tabloda, BIR ADAM sunucusuna bağlanırken özniteliğin connectionProtection etkisi gösterilmektedir.
connectionProtection ayar |
Etki |
|---|---|
| None | sınıfı ActiveDirectoryMembershipProvider , bu kısıtlamayla bir ADAM sunucusuna bağlanır. - ADAM sunucusunu güvenli olmayan bir bağlantı üzerinden parola gönderilmesine ve değiştirilmesine izin verecek şekilde açıkça yapılandırmadığınız sürece parola ayarlayan tüm yöntemler başarısız olur. Hem işlem kimlik bilgileri hem de açık kimlik bilgileri desteklenir. |
Secure |
ActiveDirectoryMembershipProvider sınıfı, SSL kullanarak ADAM sunucusuna bağlanmayı dener. Bağlantı kurulamıyorsa örnek ActiveDirectoryMembershipProvider bir ProviderException özel durum oluşturur. Hem işlem kimlik bilgileri hem de açık kimlik bilgileri desteklenir. |
ADAM Yapılandırması
ADAM sunucusu kullanılırken, ADAM örneği sınıfını tanımlayan User bir şema içermelidir. SıNıFını User , ADAM yükleme dizininde bulunan dosyanın LDIF içeri aktarmasıyla MS-User.ldf içeri aktarabilirsiniz.
sınıfı, ActiveDirectoryMembershipProvider varsayılan ağ bağlantı noktalarını kullanacak şekilde yapılandırılmış bir ADAM sunucusuyla çalışır. Aşağıdaki tabloda ADAM sunucusu için beklenen varsayılan değerler gösterilmektedir.
| connectionProtection ayarı | Beklenen ADAM bağlantı noktası |
|---|---|
| None | 389 |
Secure |
636 |
Oluşturucular
| Name | Description |
|---|---|
| ActiveDirectoryMembershipProvider() |
sınıfının yeni bir örneğini ActiveDirectoryMembershipProvider oluşturur. |
Özellikler
| Name | Description |
|---|---|
| ApplicationName |
Özel üyelik sağlayıcısını kullanan uygulamanın adı. |
| CurrentConnectionProtection |
Sunucuyla iletişimi korumak için kullanılan geçerli güvenlik düzeyini alır. |
| Description |
Yönetim araçlarında veya diğer kullanıcı arabirimlerinde (UI) görüntülenmeye uygun kısa ve kolay bir açıklama alır. (Devralındığı yer: ProviderBase) |
| EnablePasswordReset |
Örneğin kullanıcıların parolalarını sıfırlamasına izin verecek şekilde yapılandırılıp yapılandırılmadığını ActiveDirectoryMembershipProvider belirten bir değer alır. |
| EnablePasswordRetrieval |
Kullanıcının parolasının Active Directory veri deposundan alınıp alınamayacağını belirten bir değer alır. Bu özellik her zaman döndürür |
| EnableSearchMethods |
Arama odaklı ActiveDirectoryMembershipProvider yöntemlerin kullanılabilir olup olmadığını gösteren bir değer alır. |
| MaxInvalidPasswordAttempts |
Kullanıcının parola sıfırlama sorusu için izin verilen başarısız yanıt denemelerinin sayısını alır. |
| MinRequiredNonAlphanumericCharacters |
Geçerli bir parolada bulunması gereken en az sayıda özel karakter alır. |
| MinRequiredPasswordLength |
Parola için gereken en düşük uzunluğu alır. |
| Name |
Yapılandırma sırasında sağlayıcıya başvurmak için kullanılan kolay adı alır. (Devralındığı yer: ProviderBase) |
| PasswordAnswerAttemptLockoutDuration |
Kullanıcı çok fazla hatalı parola yanıtı girişiminde bulunduktan sonra bir kullanıcı hesabının kilitlenme süresini alın. |
| PasswordAttemptWindow |
Geçerli bir parola veya geçerli bir parola yanıtı sağlamaya yönelik ardışık başarısız girişimlerin izlendiği zaman penceresini alır. |
| PasswordFormat |
Active Directory veri deposundaki parolaların biçimini gösteren bir değer alır. |
| PasswordStrengthRegularExpression |
Parolayı değerlendirmek için kullanılan normal ifadeyi alır. |
| RequiresQuestionAndAnswer |
Üyelik sağlayıcısının kullanıcı oluştururken parola sorusu ve yanıtı gerektirecek şekilde yapılandırılıp yapılandırılmadığını belirten bir değer alır. |
| RequiresUniqueEmail |
Active Directory sunucusunda depolanan bir e-posta adresinin benzersiz olması gerekip gerekmediğini belirten bir değer alır. |
Yöntemler
| Name | Description |
|---|---|
| ChangePassword(String, String, String) |
Belirtilen kullanıcının parolasını değiştirir. |
| ChangePasswordQuestionAndAnswer(String, String, String, String) |
Active Directory deposundaki bir kullanıcının parola sorusunu ve yanıtını güncelleştirir. |
| CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus) |
Active Directory veri deposuna yeni bir kullanıcı ekler. |
| DecryptPassword(Byte[]) |
Şifrelenmiş parolanın şifresini çözer. (Devralındığı yer: MembershipProvider) |
| DeleteUser(String, Boolean) |
Kullanıcının üyelik bilgilerini Active Directory veri deposundan kaldırır. |
| EncryptPassword(Byte[], MembershipPasswordCompatibilityMode) |
Belirtilen parolayı belirtilen parola uyumluluk modunu kullanarak şifreler. (Devralındığı yer: MembershipProvider) |
| EncryptPassword(Byte[]) |
Parolayı şifreler. (Devralındığı yer: MembershipProvider) |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| FindUsersByEmail(String, Int32, Int32, Int32) |
Kullanıcının e-posta adresine göre Active Directory veri deposundan bir üyelik kullanıcıları koleksiyonu döndürür. |
| FindUsersByName(String, Int32, Int32, Int32) |
Kullanıcı adına göre Active Directory veri deposundan bir kullanıcı koleksiyonu döndürür. |
| GeneratePassword() |
Rastgele bir parola oluşturur. |
| GetAllUsers(Int32, Int32, Int32) |
Active Directory veri kaynağında depolanan tüm kullanıcıların koleksiyonunu alır. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetNumberOfUsersOnline() |
Her durumda bir NotSupportedException özel durum oluşturur. |
| GetPassword(String, String) |
Belirtilen kullanıcının parolasını veritabanından döndürür. ActiveDirectoryMembershipProvider sınıfı bu yöntemi desteklemiyor. |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| GetUser(Object, Boolean) |
Belirtilen kullanıcı anahtarıyla ilişkili üyelik kullanıcı bilgilerini alır. |
| GetUser(String, Boolean) |
Belirtilen kullanıcı adıyla ilişkili üyelik kullanıcı bilgilerini alır. |
| GetUserNameByEmail(String) |
Belirtilen e-posta adresiyle ilişkili kullanıcı adını alır. |
| Initialize(String, NameValueCollection) |
Örneğini ActiveDirectoryMembershipProvider uygulamanın yapılandırma dosyalarındaki özellik değerleriyle başlatır. Bu yöntem, kodunuzdan çağrılmak üzere tasarlanmamıştır. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| OnValidatingPassword(ValidatePasswordEventArgs) |
Bir olay işleyicisi tanımlanmışsa olayı tetikler ValidatingPassword . (Devralındığı yer: MembershipProvider) |
| ResetPassword(String, String) |
Kullanıcının parolasını otomatik olarak oluşturulan yeni bir parolaya sıfırlar. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| UnlockUser(String) |
Üyelik kullanıcısını doğrulanabilmesi için kilidi temizler. |
| UpdateUser(MembershipUser) |
Active Directory veri deposundaki bir kullanıcı hakkındaki bilgileri güncelleştirir. |
| ValidateUser(String, String) |
Belirtilen kullanıcı adı ve parolanın Active Directory veri deposunda mevcut olduğunu doğrular. |
Ekinlikler
| Name | Description |
|---|---|
| ValidatingPassword |
Kullanıcı oluşturulduğunda, parola değiştirildiğinde veya parola sıfırlandığında gerçekleşir. (Devralındığı yer: MembershipProvider) |