WCF到WebLogic的通信

时间:2014-10-09 22:49:11

标签: wcf weblogic wcf-security

我试图在这里与这项服务交谈: https://dmrsit1gateway1.skat.dk/B2B/USImportoer/Service?WSDL

它是使用x509证书的Oracle Weblogic服务。

每当我发送请求时,我都会收到带有附加信息的SecurityAccessDeniedException: {"无法从token.javax.security.auth.login.LoginException派生主题:javax.security.auth.callback.UnsupportedCallbackException:不支持的回调类:NameCallback javax.security.auth.callback .NameCallback @ 15d38692"}

不知怎的,我的要求似乎并不符合预期。

这是我最近的尝试:

var binding = new CustomBinding();
var sec = (AsymmetricSecurityBindingElement)SecurityBindingElement.CreateMutualCertificateBindingElement(MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10);

var x509token = new X509SecurityTokenParameters();
sec.EnableUnsecuredResponse = true;
sec.EndpointSupportingTokenParameters.Signed.Add(x509token);
sec.IncludeTimestamp = true;
sec.SecurityHeaderLayout = SecurityHeaderLayout.LaxTimestampLast;
sec.AllowInsecureTransport = true;
binding.Elements.Add(sec);

binding.Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8));

HttpsTransportBindingElement httpsBindingElement = new HttpsTransportBindingElement();
httpsBindingElement.RequireClientCertificate = true;
binding.Elements.Add(httpsBindingElement);

string endpoint = "https://dmrsit1gateway1.skat.dk:443/B2B/USImportoer/Service?WSDL";

var client = new USImportoerServiceTypeClient(binding, new EndpointAddress(new Uri(endpoint), new DnsEndpointIdentity("REDACTED"), new AddressHeaderCollection()));
client.ClientCredentials.ServiceCertificate.SetDefaultCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByThumbprint, "REDACTED");
client.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByThumbprint, "REDACTED");

var response = client.getUSDispensationTypeListeHent(input);

任何输入如何排除故障都将受到高度赞赏。

0 个答案:

没有答案