Ami*_*ard 6 c# asp.net claims-based-identity wif sts-securitytokenservice
我经常遇到这个错误,我的努力没有任何结果.错误:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
小智 13
尝试将web.config identityConfiguration更改为:
<issuerNameRegistry type="Webapp1.WsFederationRequestValidator, Webapp1" />
Run Code Online (Sandbox Code Playgroud)
看看是否有帮助.另外,请确保System.IdentityModel.Tokens.ValidatingIsserNameRegistry正确设置您的引用.
您可能需要Microsoft Token Validation Extension for Microsoft .Net Framework 4.5从NuGet中获取最新信息.