我正嘗試使用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