Bagikan melalui


IssuerNameRegistry Kelas

Definisi

Kelas dasar abstrak untuk registri nama pengeluar sertifikat. Registri nama pengeluar sertifikat digunakan untuk mengaitkan nama mnemonic ke materi kriptografi yang diperlukan untuk memverifikasi tanda tangan token yang dihasilkan oleh penerbit yang sesuai. Registri nama penerbit mempertahankan daftar penerbit yang dipercaya oleh aplikasi pihak yang mengandalkan (RP).

public ref class IssuerNameRegistry abstract : System::IdentityModel::Configuration::ICustomIdentityConfiguration
public abstract class IssuerNameRegistry : System.IdentityModel.Configuration.ICustomIdentityConfiguration
type IssuerNameRegistry = class
    interface ICustomIdentityConfiguration
Public MustInherit Class IssuerNameRegistry
Implements ICustomIdentityConfiguration
Warisan
IssuerNameRegistry
Turunan
Penerapan

Contoh

Kode berikut menunjukkan implementasi IssuerNameRegistry kelas yang hanya menerima penerbit yang menggunakan sertifikat dengan subjek "CN=localhost".

Peringatan

Kode berikut hanya untuk tujuan ilustrasi. Memvalidasi sertifikat berdasarkan nama subjek bukanlah praktik yang baik. Kode ini tidak boleh digunakan apa adanya dalam produksi.

using System.IdentityModel.Tokens;

namespace System.IdentityModel.Samples
{
    /// <summary>
    /// This class verifies that the issuer is trusted, and provides the issuer name.
    /// </summary>
    public class TrustedIssuerNameRegistry : IssuerNameRegistry
    {
        /// <summary>
        /// Gets the issuer name of the given security token,
        /// if it is the X509SecurityToken of 'localhost'.
        /// </summary>
        /// <param name="securityToken">The issuer's security token</param>
        /// <returns>A string that represents the issuer name</returns>
        /// <exception cref="SecurityTokenException">If the issuer is not trusted.</exception>
        public override string GetIssuerName(SecurityToken securityToken)
        {
            X509SecurityToken x509Token = securityToken as X509SecurityToken;
            if (x509Token != null)
            {
                if (String.Equals(x509Token.Certificate.SubjectName.Name, "CN=localhost"))
                {
                    return x509Token.Certificate.SubjectName.Name;
                }
            }

            throw new SecurityTokenException("Untrusted issuer.");
        }
    }
}

Berikut ini menunjukkan XML yang diperlukan untuk mengonfigurasi aplikasi dengan registri nama penerbit tepercaya.

<system.identityModel>  
  <identityConfiguration>  
    <issuerNameRegistry type="System.IdentityModel.Samples.TrustedIssuerNameRegistry, MyApp" />  
  </identityConfiguration>  
</system.identityModel>  

Keterangan

Registri nama penerbit digunakan untuk mengaitkan nama mnemonic ke materi kriptografi yang diperlukan untuk memverifikasi tanda tangan token yang dihasilkan oleh penerbit yang sesuai. Nama ini kemudian digunakan untuk mengatur Issuer atau OriginalIssuer properti klaim. Metode yang diekspos oleh IssuerNameRegistry kelas dipanggil dari alur oleh penangan token keamanan yang memproses token. Token yang ditandatangani oleh materi yang tidak dipetakan oleh registri nama penerbit dibuang sebagai tidak tepercaya. Nama yang dikembalikan oleh registri nama penerbit harus unik dalam konteks aplikasi RP.

Dalam kode, Anda dapat menentukan registri nama penerbit yang akan digunakan dengan mengatur SecurityTokenHandlerConfiguration.IssuerNameRegistry properti . Dalam file konfigurasi, registri nama penerbit dapat ditentukan dengan menentukan <elemen issuerNameRegistry> di bawah <elemen securityTokenHandlerConfiguration> .

Windows Identity Foundation (WIF) menyediakan implementasi IssuerNameRegistry kelas out of the box: ConfigurationBasedIssuerNameRegistry kelas . Ketika Anda menggunakan implementasi ini, Anda dapat menentukan daftar penerbit tepercaya dalam file konfigurasi aplikasi RP di bawah <elemen trustedIssuers> , yang merupakan elemen turunan dari <issuerNameRegistry> elemen ketika ConfigurationBasedIssuerNameRegistry.class direferensikan dalam atribut elemen tersebut type . <trustedIssuers> Di bawah elemen , setiap nama pengeluar sertifikat dipetakan ke sertifikat X.509 yang harus digunakan untuk memverifikasi tanda tangannya.

Untuk membuat registri nama penerbit kustom, Anda harus mengambil alih metode .IssuerNameRegistry.GetIssuerName(SecurityToken) Metode ini mengembalikan nama pengeluar sertifikat untuk token keamanan yang ditentukan. Anda dapat secara opsional mengambil IssuerNameRegistry.GetIssuerName(SecurityToken, String) alih metode untuk memberikan mekanisme petunjuk saat mengambil nama penerbit dan GetWindowsIssuerName metode jika Anda ingin memberikan nama pengeluar sertifikat untuk token Windows yang berbeda dari DefaultIssuer. Ambil alih LoadCustomConfiguration metode untuk memungkinkan registri nama pengeluar sertifikat Anda diinisialisasi dari file konfigurasi.

Konstruktor

IssuerNameRegistry()

Menginisialisasi instans baru kelas IssuerNameRegistry.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetIssuerName(SecurityToken)

Ketika ditimpa di kelas turunan, mengembalikan nama penerbit token keamanan yang ditentukan.

GetIssuerName(SecurityToken, String)

Ketika ditimpa di kelas turunan, mengembalikan nama penerbit token keamanan yang ditentukan. Nama pengeluar sertifikat yang ditentukan dapat dipertimbangkan dalam menentukan nama penerbit yang akan dikembalikan.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
GetWindowsIssuerName()

Mengembalikan nama pengeluar sertifikat default yang akan digunakan untuk klaim Windows.

LoadCustomConfiguration(XmlNodeList)

Saat ditimpa di kelas turunan, memuat konfigurasi kustom dari XML.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga