6

我经常遇到这个错误,我的努力没有任何结果。错误 :

ID8030: 'type' 属性的值无法解析。请验证 'issuerNameRegistry type="Webapp1.TrustedIssuerNameRegistry,webapp1" 元素的 type 属性是否正确

这是我的 TrustedIssuerNameRegistry 类:

    namespace Webapp1
{
    public class TrustedIssuerNameRegistery : IssuerNameRegistry
    {
        private 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 配置:

  <system.identityModel>
<identityConfiguration>
  <certificateValidation certificateValidationMode="PeerTrust" trustedStoreLocation="LocalMachine" revocationMode="Online"/>
  <audienceUris>
    <add value="http://localhost:7382/"/>
    <add value="http://localhost:50466/"/>
  </audienceUris>
  <issuerNameRegistry type="Webapp1.WsFederationRequestValidator"></issuerNameRegistry>
   </identityConfiguration>

4

1 回答 1

13

尝试将您的 web.config identityConfiguration 更改为:

<issuerNameRegistry type="Webapp1.WsFederationRequestValidator, Webapp1" />

看看是否有帮助。此外,请确保您的参考System.IdentityModel.Tokens.ValidatingIsserNameRegistry设置正确。

您可能需要Microsoft Token Validation Extension for Microsoft .Net Framework 4.5从 NuGet 获取最新的。

于 2014-01-12T22:12:28.843 回答