Hi Dean,

No, that did not make a difference. I think I am OK with getting
authenticated in the server. It's the file access part that is not OK.

Thanks anyway for your time.
Regards,
Eddie

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] Behalf Of Dean Cleaver
Sent: Tuesday, July 10, 2007 2:14 PM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] Accessing files over HTTPS -> for Peter
Ritchie


Ok - that is a client certificate for sure.

I've got code that issues an HTTPS post to a remote server using client
certificates, but nothing that retrieves a file from the remote server
using client certificates - only using server certificates.

With your original code posted earlier today, add this just after
creating your HttpWebRequest:

ServicePointManager.ServerCertificateValidationCallback =
this.ValidateServerCertificate;

And then add this code:


public bool ValidateServerCertificate(
      object sender,
      X509Certificate certificate,
      X509Chain chain,
      SslPolicyErrors sslPolicyErrors)
{
    if (sslPolicyErrors == SslPolicyErrors.None)
        return true;

    // Do not allow this client to communicate with unauthenticated
servers.
    return false;
}


See if that helps.

Dino

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Eddie Lascu
Sent: Wednesday, 11 July 2007 06:03
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] Accessing files over HTTPS -> for Peter
Ritchie

Yes, it does and I have to select the certificate they gave me and I
installed on my client machine. If I select something else or do not
select anything at all will not connect to the remote server.

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] Behalf Of Dean Cleaver
Sent: Tuesday, July 10, 2007 1:39 PM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] Accessing files over HTTPS -> for Peter
Ritchie


Eddie,

If you try to retrieve the file in your browser, does it ask you to pick
a client certificate from a list? I know in the other situation I have
where I access a remote server with a client certificate, that's exactly
what happens via IE7.

Dino

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Eddie Lascu
Sent: Wednesday, 11 July 2007 04:55
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] Accessing files over HTTPS -> for Peter
Ritchie

Hello Dean,

I just entered this fascinating world and I am completely inexperienced.
I really don't know what is the difference between a server certificate
and a client certificate. Given that I had to install the digital
certificate on my client machine (although the certificate was provided
by the company that hosts the server I am trying to access) my guess is
that it is a client certificate.
In my case I am trying to implement an automated process, w/o human
intervention. There should be no login step and I believe that is why I
was presented with the digital certificate I had to install.

Thanks,
Eddie


-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] Behalf Of Dean Cleaver
Sent: Tuesday, July 10, 2007 12:36 PM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] Accessing files over HTTPS -> for Peter
Ritchie


Eddie,

Can you clarify - are you using a server certificate (standard https) or
are you using a client certificate? The code below appears as if you're
using a client certificate.

I retrieve files over HTTPS with just a server certificate like this:


public static bool Retrieve(string url, string userName, string
password, string fileName) {
        WebClient client = new WebClient();
        client.Credentials = new NetworkCredential(userName, password);
        ServicePointManager.ServerCertificateValidationCallback =
ValidateServerCertificate;

        try
        {
                client.DownloadFile(url, fileName);
                return true;
        }
        catch
        {
                return false;
        }
}

public static bool ValidateServerCertificate(
          object sender,
          X509Certificate certificate,
          X509Chain chain,
          System.Net.Security.SslPolicyErrors sslPolicyErrors) {
        if (sslPolicyErrors == System.Net.Security.SslPolicyErrors.None)
                return true;

        Console.WriteLine("Certificate error: {0}", sslPolicyErrors);

        // Do not allow this client to communicate with unauthenticated
servers.
        return false;
}


In my case, I have to log into the remote server as well, hence the
username, password and the NetworkCredential - you can remove those if
the remote server is not protected.

Cheers,
Dino

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor.  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor.  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to