Поделиться через


IssuerNameRegistry Класс

Определение

Абстрактный базовый класс для реестра имен издателей. Реестр имени издателя используется для сопоставления мнемонического имени с криптографическим материалом, необходимым для проверки подписей токенов, выдаваемых соответствующим издателем. Реестр имен издателей ведет список издателей, которым доверяет приложение проверяющей стороны (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
Наследование
IssuerNameRegistry
Производный
Реализации

Примеры

В следующем коде показана IssuerNameRegistry реализация класса , который принимает только издателей, использующих сертификаты с субъектом "CN=localhost".

Предупреждение

Следующий код предназначен только для иллюстрации. Проверка сертификатов на основе имени субъекта не рекомендуется. Этот код не следует использовать в рабочей среде.

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.");
        }
    }
}

Ниже показан XML-код, необходимый для настройки приложения с реестром имен доверенных издателей.

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

Комментарии

Реестр имен издателя используется для связывания мнемонического имени с криптографическим материалом, необходимым для проверки подписей маркеров, созданных соответствующим издателем. Затем это имя используется для задания Issuer свойства или OriginalIssuer утверждения. Методы, предоставляемые классом IssuerNameRegistry , вызываются из конвейера обработчиком маркера безопасности, обрабатывающим маркер. Маркеры, подписанные материалом, который не сопоставлен реестром имен издателя, удаляются как ненадежные. Имя, возвращаемое реестром имен издателя, должно быть уникальным в контексте приложения RP.

В коде можно указать используемый реестр имен издателя, задав SecurityTokenHandlerConfiguration.IssuerNameRegistry свойство . В файле конфигурации можно указать реестр имен издателя<, указав элемент issuerNameRegistry> в элементе< securityTokenHandlerConfiguration>.

Windows Identity Foundation (WIF) предоставляет реализацию IssuerNameRegistry класса по умолчанию ConfigurationBasedIssuerNameRegistry : класс . При использовании этой реализации можно указать список доверенных издателей в файле конфигурации приложения RP в <элементе trustedIssuers> , который является дочерним элементом <issuerNameRegistry> элемента, если ConfigurationBasedIssuerNameRegistryна класс ссылается атрибут этого элемента type . В элементе каждое <trustedIssuers> имя издателя сопоставляется с сертификатом X.509, который следует использовать для проверки его подписи.

Чтобы создать пользовательский реестр имен издателя, необходимо переопределить IssuerNameRegistry.GetIssuerName(SecurityToken) метод . Этот метод возвращает имя издателя для указанного маркера безопасности. При необходимости можно переопределить IssuerNameRegistry.GetIssuerName(SecurityToken, String) метод , чтобы предоставить механизм указания при получении имен издателей, и GetWindowsIssuerName метод , если вы хотите указать имя издателя для маркеров Windows, отличное от DefaultIssuer. Переопределите метод , чтобы включить инициализацию LoadCustomConfiguration реестра имен издателя из файла конфигурации.

Конструкторы

IssuerNameRegistry()

Инициализирует новый экземпляр класса IssuerNameRegistry.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetIssuerName(SecurityToken)

При переопределении в производном классе возвращает имя поставщика указанного токена безопасности.

GetIssuerName(SecurityToken, String)

При переопределении в производном классе возвращает имя поставщика указанного токена безопасности. Указанное имя издателя может учитываться при определении возвращаемого имени издателя.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetWindowsIssuerName()

Возвращает имя издателя по умолчанию, используемое для утверждений Windows.

LoadCustomConfiguration(XmlNodeList)

При переопределении в производном классе загружает пользовательскую конфигурацию из XML-кода.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел