Aracılığıyla paylaş


X509FindType Sabit listesi

Tanım

Yöntemin aramasını yapılan değerin Find(X509FindType, Object, Boolean) türünü belirtir.

public enum class X509FindType
public enum X509FindType
type X509FindType = 
Public Enum X509FindType
Devralma
X509FindType

Alanlar

FindByApplicationPolicy 10

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi, uygulama ilkesi kolay adını veya sertifikanın nesne tanımlayıcısını (OID veya Oid) temsil eden bir dize olmalıdır. Örneğin, "Şifreleme Dosya Sistemi" veya "1.3.6.1.4.1.311.10.3.4" kullanılabilir. Yerelleştirilecek bir uygulama için kolay ad yerelleştirildiğinden OID değeri kullanılmalıdır.

FindByCertificatePolicy 11

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi, sertifika ilkesinin kolay adını veya nesne tanımlayıcısını (OID veya Oid) temsil eden bir dize olmalıdır. En iyi yöntem, "1.3.6.1.4.1.311.10.3.4" gibi OID kullanmaktır. Yerelleştirilecek bir uygulama için kolay ad yerelleştirildiğinden OID kullanılmalıdır.

FindByExtension 12

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi, bulunabilecek uzantıyı açıklayan bir dize olmalıdır. Nesne tanımlayıcısı (OID), yöntemi en yaygın olarak bu OID değeriyle Find(X509FindType, Object, Boolean) eşleşen bir uzantıya sahip tüm sertifikaları aramaya yönlendirmek için kullanılır.

FindByIssuerDistinguishedName 4

findValue yönteminin parametresi, sertifikanın Find(X509FindType, Object, Boolean) veren ayırt edici adını temsil eden bir dize olmalıdır. Bu, numaralandırma değeri tarafından FindByIssuerName sağlanandan daha özel bir aramadır. FindByIssuerDistinguishedName yöntemi, değerini kullanarak ayırt edici adın Find(X509FindType, Object, Boolean) tamamı için büyük/küçük harfe duyarlı olmayan bir dize karşılaştırması gerçekleştirir. Veren adına göre arama daha az kesin bir aramadır.

FindByIssuerName 3

findValue yönteminin parametresi sertifikanın Find(X509FindType, Object, Boolean) veren adını temsil eden bir dize olmalıdır. Bu, numaralandırma değeri tarafından FindByIssuerDistinguishedName sağlanandan daha az belirli bir aramadır. FindByIssuerName yöntemi, Find(X509FindType, Object, Boolean) değerini kullanarak sağlanan değeri kullanarak büyük/küçük harfe duyarlı olmayan bir dize karşılaştırması gerçekleştirir. Örneğin, yönteme Find(X509FindType, Object, Boolean) "MyCA" geçirirseniz, diğer veren değerlerinden bağımsız olarak bu dizeyi içeren veren adına sahip tüm sertifikaları bulur.

FindByKeyUsage 13

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi, anahtar kullanımını temsil eden bir dize veya istenen tüm anahtar kullanımlarını içeren bit maskesini temsil eden bir tamsayı olmalıdır. Dize değeri için, bir kerede yalnızca bir anahtar kullanımı belirtilebilir, ancak Find(X509FindType, Object, Boolean) yöntem istenen kullanımların kesişimini almak için basamaklı bir dizide kullanılabilir. Örneğin, findValue parametresi "KeyEncipherment" veya bir tamsayı (0x30 "KeyEncipherment" ve "DataEncipherment" ifadelerini gösterir) olarak ayarlanabilir. Sabit listesi değerleri X509KeyUsageFlags de kullanılabilir.

FindBySerialNumber 5

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi, sertifika iletişim kutusu tarafından görüntülenen sertifikanın seri numarasını temsil eden, ancak boşluk içermeyen veya yöntemi tarafından GetSerialNumberString() döndürülen bir dize olmalıdır.

FindBySubjectDistinguishedName 2

findValue yönteminin parametresi, sertifikanın Find(X509FindType, Object, Boolean) konu ayırt edici adını temsil eden bir dize olmalıdır. Bu, numaralandırma değeri tarafından FindBySubjectName sağlanandan daha belirgin bir aramadır. FindBySubjectDistinguishedName yöntemi, değerini kullanarak ayırt edici adın Find(X509FindType, Object, Boolean) tamamı için büyük/küçük harfe duyarlı olmayan bir dize karşılaştırması gerçekleştirir. Konu adına göre arama daha az kesin bir aramadır.

FindBySubjectKeyIdentifier 14

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi, kullanıcı arabiriminde gösterildiği gibi "F3E815D45E83B8477B9284113C64EF208E897112" gibi onaltılık konu anahtarı tanımlayıcısını temsil eden bir dize olmalıdır.

FindBySubjectName 1

findValue yönteminin parametresi sertifikanın Find(X509FindType, Object, Boolean) konu adını temsil eden bir dize olmalıdır. Bu, numaralandırma değeri tarafından FindBySubjectDistinguishedName sağlanandan daha az belirli bir aramadır. FindBySubjectName yöntemi, Find(X509FindType, Object, Boolean) değerini kullanarak sağlanan değeri kullanarak büyük/küçük harfe duyarlı olmayan bir dize karşılaştırması gerçekleştirir. Örneğin, yönteme Find(X509FindType, Object, Boolean) "MyCert" geçirirseniz, diğer konu değerlerine bakılmaksızın bu dizeyi içeren konu adına sahip tüm sertifikaları bulur. Ayırt edici ada göre arama daha kesin bir aramadır.

FindByTemplateName 9

findValue yönteminin parametresi, sertifikanın Find(X509FindType, Object, Boolean) şablon adını temsil eden bir dize (örneğin, "ClientAuth") olmalıdır. Şablon adı, sertifikanın kullanımlarını belirten bir X509 sürüm 3 uzantısıdır.

FindByThumbprint 0

findValue yönteminin parametresi sertifikanın Find(X509FindType, Object, Boolean) parmak izini temsil eden bir dize olmalıdır.

FindByTimeExpired 8

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi yerel saat içindeki bir DateTime değer olmalıdır. Örneğin, için bir işlemin sonuçlarından yılın son gününe ait bir Find(X509FindType, Object, Boolean) işlemin FindByTimeExpired sonuçlarını ortadan kaldırarak yıl Find(X509FindType, Object, Boolean)Nowsonuna kadar geçerli olacak tüm sertifikaları bulabilirsiniz.

FindByTimeNotYetValid 7

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi yerel saat içindeki bir DateTime değer olmalıdır. Değerin gelecekte olması gerekmez. Örneğin, geçen yılın son günü için bir Find(X509FindType, Object, Boolean) işlemin sonuçlarının kesişimini ve işleminin sonuçlarını Find(X509FindType, Object, Boolean) alarak geçerli yılda geçerli olan sertifikaları bulmak için FindByTimeNotYetValidNowFindByTimeValid kullanabilirsiniz.FindByTimeNotYetValid

FindByTimeValid 6

findValue yönteminin Find(X509FindType, Object, Boolean) parametresi yerel saat içindeki bir DateTime değer olmalıdır. Şu anda geçerli olan tüm sertifikaları bulmak için kullanabilirsiniz Now .

Örnekler

Aşağıdaki örnek geçerli kullanıcının kişisel sertifika depounu açar, yalnızca geçerli sertifikaları bulur, kullanıcının bir sertifika seçmesine izin verir ve ardından konsola sertifika bilgilerini yazar. Çıkış, seçtiğiniz sertifikaya bağlıdır.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Permissions;
using namespace System::IO;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   try
   {
      X509Store ^ store = gcnew X509Store( "MY",StoreLocation::CurrentUser );
      store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
      X509Certificate2Collection ^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
      X509Certificate2Collection ^ fcollection = dynamic_cast<X509Certificate2Collection^>(collection->Find( X509FindType::FindByTimeValid, DateTime::Now, false ));
      X509Certificate2Collection ^ scollection = X509Certificate2UI::SelectFromCollection(fcollection, "Test Certificate Select","Select a certificate from the following list to get information on that certificate",X509SelectionFlag::MultiSelection);
      Console::WriteLine( "Number of certificates: {0}{1}", scollection->Count, Environment::NewLine );
      System::Collections::IEnumerator^ myEnum = scollection->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
         array<Byte>^rawdata = x509->RawData;
         Console::WriteLine( "Content Type: {0}{1}", X509Certificate2::GetCertContentType( rawdata ), Environment::NewLine );
         Console::WriteLine( "Friendly Name: {0}{1}", x509->FriendlyName, Environment::NewLine );
         Console::WriteLine( "Certificate Verified?: {0}{1}", x509->Verify(), Environment::NewLine );
         Console::WriteLine( "Simple Name: {0}{1}", x509->GetNameInfo( X509NameType::SimpleName, true ), Environment::NewLine );
         Console::WriteLine( "Signature Algorithm: {0}{1}", x509->SignatureAlgorithm->FriendlyName, Environment::NewLine );
         Console::WriteLine( "Private Key: {0}{1}", x509->PrivateKey->ToXmlString( false ), Environment::NewLine );
         Console::WriteLine( "Public Key: {0}{1}", x509->PublicKey->Key->ToXmlString( false ), Environment::NewLine );
         Console::WriteLine( "Certificate Archived?: {0}{1}", x509->Archived, Environment::NewLine );
         Console::WriteLine( "Length of Raw Data: {0}{1}", x509->RawData->Length, Environment::NewLine );
         x509->Reset();
      }
      store->Close();
   }
   catch ( CryptographicException^ ) 
   {
      Console::WriteLine( "Information could not be written out for this certificate." );
   }

}
using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class CertSelect
{
    static void Main()
    {
        X509Store store = new X509Store("MY",StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

        X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
        X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid,DateTime.Now,false);
        X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select","Select a certificate from the following list to get information on that certificate",X509SelectionFlag.MultiSelection);
        Console.WriteLine("Number of certificates: {0}{1}",scollection.Count,Environment.NewLine);

        foreach (X509Certificate2 x509 in scollection)
        {
            try
            {
                byte[] rawdata = x509.RawData;
                Console.WriteLine("Content Type: {0}{1}",X509Certificate2.GetCertContentType(rawdata),Environment.NewLine);
                Console.WriteLine("Friendly Name: {0}{1}",x509.FriendlyName,Environment.NewLine);
                Console.WriteLine("Certificate Verified?: {0}{1}",x509.Verify(),Environment.NewLine);
                Console.WriteLine("Simple Name: {0}{1}",x509.GetNameInfo(X509NameType.SimpleName,true),Environment.NewLine);
                Console.WriteLine("Signature Algorithm: {0}{1}",x509.SignatureAlgorithm.FriendlyName,Environment.NewLine);
                Console.WriteLine("Public Key: {0}{1}",x509.PublicKey.Key.ToXmlString(false),Environment.NewLine);
                Console.WriteLine("Certificate Archived?: {0}{1}",x509.Archived,Environment.NewLine);
                Console.WriteLine("Length of Raw Data: {0}{1}",x509.RawData.Length,Environment.NewLine);
                X509Certificate2UI.DisplayCertificate(x509);
                x509.Reset();
            }
            catch (CryptographicException)
            {
                Console.WriteLine("Information could not be written out for this certificate.");
            }
        }
        store.Close();
    }
}
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates

Class CertSelect

    Shared Sub Main()

        Dim store As New X509Store("MY", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)

        Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
        Dim scollection As X509Certificate2Collection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select", "Select a certificate from the following list to get information on that certificate", X509SelectionFlag.MultiSelection)
        Console.WriteLine("Number of certificates: {0}{1}", scollection.Count, Environment.NewLine)
         
        For Each x509 As X509Certificate2 In scollection
            Try
                Dim rawdata As Byte() = x509.RawData
                Console.WriteLine("Content Type: {0}{1}", X509Certificate2.GetCertContentType(rawdata), Environment.NewLine)
                Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName, Environment.NewLine)
                Console.WriteLine("Certificate Verified?: {0}{1}", x509.Verify(), Environment.NewLine)
                Console.WriteLine("Simple Name: {0}{1}", x509.GetNameInfo(X509NameType.SimpleName, True), Environment.NewLine)
                Console.WriteLine("Signature Algorithm: {0}{1}", x509.SignatureAlgorithm.FriendlyName, Environment.NewLine)
                Console.WriteLine("Public Key: {0}{1}", x509.PublicKey.Key.ToXmlString(False), Environment.NewLine)
                Console.WriteLine("Certificate Archived?: {0}{1}", x509.Archived, Environment.NewLine)
                Console.WriteLine("Length of Raw Data: {0}{1}", x509.RawData.Length, Environment.NewLine)
                X509Certificate2UI.DisplayCertificate(x509)
                x509.Reset()         
             Catch cExcept As CryptographicException
                 Console.WriteLine("Information could not be written out for this certificate.")
             End Try
        Next x509

        store.Close()
    End Sub
End Class

Açıklamalar

X509FindType yönteminin parametresinde sağlanan değerin findValueFind türünü tanımlar. Bir koleksiyonda konu adına, parmak izine, seri numarasına, geçerli tarih aralığına veya başka bir X509Certificate2 değere göre arama yapmak için kullanabilirsinizX509FindType.

Belirli bir zaman aralığında geçerli olan sertifikaları bulmak için değer türlerinin bir bileşimini FindByTime kullanabilirsiniz. Belirli bir süre için FindByTimeValid, FindByTimeNotYetValid ve FindByTimeExpired kullanılarak döndürülen sertifikaların birleşimi sorgulanan koleksiyondaki tüm sertifikaları temsil eder.

Şunlara uygulanır