Создание клиентского приложения для использования WCF, защищенного сертификатом. Сертификат установлен и может получить доступ к WSDL через IE, но приложение выбрасывает «Ошибка FaultException» 1 была неписана: «Недействительный сертификат» после того, как он ударил CaseExists. Есть идеи? Если сертификат недействителен, не будет ли он ошибкой при попадании в WSDL в IE?FaultException `1 был необработанным: недействительный сертификат?
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Security;
using System.Security.Cryptography.X509Certificates;
using System.ServiceModel.Description;
using ConsoleApplication1.ServiceReference1;
using System.Diagnostics;
using System.ServiceModel.Channels;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// binding
BasicHttpBinding b = new BasicHttpBinding();
b.Security.Mode = BasicHttpSecurityMode.Transport;
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
// endpoint
EndpointAddress ea = new EndpointAddress(
"https://cut out endpoint.svc");
// fire it up
EBondingClient client = new EBondingClient(b, ea);
// toss in cert
client.ClientCredentials.Peer.PeerAuthentication.CertificateValidationMode =
System.ServiceModel.Security.X509CertificateValidationMode.None;
client.ClientCredentials.ClientCertificate.SetCertificate(
StoreLocation.CurrentUser,
StoreName.My,
X509FindType.FindBySubjectName,
"cut.out.cert.name");
// call
Console.WriteLine(client.CaseExists("hello world"));
client.Close();
Console.ReadLine();
}
}
}
WSDL не применяет ту же защиту, что и фактическая услуга. Таким образом, пользователи могут получить доступ к схеме службы, не зная, как аутентифицироваться. – mellamokb
Я согласен с вами в этом предположении; но ребята, которые построили этот wsdl/wcf, имеют сертификат, защищающий wsdl. Это мой первый раз, когда мы имеем дело с wcf и занимаемся только традиционным материалом soap/wsdl с помощью javascript в классе до этого. моя первая реакция тоже была «почему в мире вам нужен сертификат, установленный для доступа к wsdl?» - Возможно ли, что сертификат действителен для доступа к WSDL, но не к конечной точке? –