Почему я получаю эту ошибку: "Эмитент маркера безопасности не был распознан 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".
С другой стороны - я надеюсь, что реестр имен эмитентов предназначен только для тестирования - он небезопасен, поскольку любой может создать сертификат с таким именем субъекта.