Почему я получаю эту ошибку: "Эмитент маркера безопасности не был распознан IssuerNameRegistry"

Когда я хочу запустить свое приложение, используя пользовательский STS (я написал его, и он работает хорошо), во-первых, я получаю эту ошибку:

Эмитент маркера безопасности не был распознан IssuerNameRegistry

Я проверил все решения для этой ошибки, но у меня все еще есть эта ошибка.

Я добавил класс TrustedIssuerNameRegistery и установил его в файле web.config.

public class TrustedIssuerNameRegistery : IssuerNameRegistry
{
    string issuerName = string.Empty;
    public override string GetIssuerName(SecurityToken securityToken)
    {
        if (securityToken != null)
        {
            X509SecurityToken x509Cert = securityToken as X509SecurityToken;
            if (x509Cert != null && x509Cert.Certificate.SubjectName.Name == "CN=busta-ip1sts.com")
            {
                issuerName = x509Cert.Certificate.SubjectName.Name;
            }
        }
        if (string.IsNullOrEmpty(issuerName))
        {
            throw new SecurityTokenException("Untrusted issuer.");
        }

        return issuerName;
    }

    public override string GetIssuerName(System.IdentityModel.Tokens.SecurityToken securityToken, string requestedIssuerName)
    {
        return base.GetIssuerName(securityToken, requestedIssuerName);
    }
}

это настройка web.config:

<issuerNameRegistry type='Webapp1.TrustedIssuerNameRegistry' />

Тогда я получаю эту ошибку:

***ID8030: The value of the 'type' property could not be parsed.Verify that the type attribute of '<issuerNameRegistry type="Webapp1.TrustedIssuerNameRegistry,webapp1">***

Я даже установил dll "ValidatingIssuerNameRegistry" и зарегистрировал его в web.config, но снова получаю первую ошибку.

Почему я часто получаю эту ошибку? Что с этим не так? Что еще я могу сделать? Если вы хотите, я могу дать вам мой исходный код тоже.

1 ответ

Похоже, вам также нужно имя сборки: "WebApp1.TrustedIssuerNameRegistry, AssemblyName".

С другой стороны - я надеюсь, что реестр имен эмитентов предназначен только для тестирования - он небезопасен, поскольку любой может создать сертификат с таким именем субъекта.

Другие вопросы по тегам