我正尝试使用WS2007HttpRelayBinding,端到端安全模式设置为TransportWithMessageCredential。我正在使用IssuedToken作为凭证类型。我从ADFS 2.0获得令牌,并调用该服务我在本地wcf跟踪日志中获得以下内容无法找到“Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken”令牌的令牌认证器
找不到'Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken'令牌类型的令牌认证器。根据当前的安全设置,该类型的令牌不能被接受。
更新:
这是怎么了配置服务主机
ServiceConfiguration serviceConfiguration = new ServiceConfiguration();
serviceConfiguration.ServiceCertificate = GetServiceCertificateWithPrivateKey();
serviceConfiguration.CertificateValidationMode = X509CertificateValidationMode.None;
serviceConfiguration.IssuerNameRegistry = new X509IssuerNameRegistry("localhost");
serviceConfiguration.SaveBootstrapTokens = true;
serviceConfiguration.SecurityTokenHandlers.AddOrReplace(new Saml2SecurityTokenHandler());
serviceConfiguration.SecurityTokenHandlers.Configuration.AudienceRestriction.AllowedAudienceUris.Add(new Uri("https://mynamespace.servicebus.windows.net/Service1/"));
FederatedServiceCredentials.ConfigureServiceHost(host, serviceConfiguration);
host.Open();
我相信这是equalant这个代码,我做的, serviceConfiguration.SecurityTokenHandlers.Add(新Saml2SecurityTokenHandler()); 然后我打电话给 FederatedServiceCredentials.ConfigureServiceHost(host,serviceConfiguration); – Ovais 2012-07-23 14:03:56
这里是我如何创建客户端绑定 var binding = new WS2007HttpRelayBinding(); binding.Security.Message.ClientCredentialType = MessageCredentialType.IssuedToken; binding.Security.Message.EstablishSecurityContext = false; //binding.Security.Message.NegotiateServiceCredential = false; binding.Security.Mode = EndToEndSecurityMode.TransportWithMessageCredential; 看不到帖子中提到的问题 – Ovais 2012-07-23 14:18:11
binding.Security.Message.EstablishSecurityContext = false;将其设置为true :) – 2012-07-23 14:40:22