Hello Peter and everybody, I did some progress on this problem, but still have some issues. This is what I did so far:
// obtain a collection of certificates X509Store store = new X509Store("MY", StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); collection = (X509Certificate2Collection)store.Certificates; fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false); // URL for my file to download string myFile2Get = "https://www.MySecureWebsite.com/MyFile.txt"; // create the specialized Web Request object HttpWebRequest objHttpWebReq = WebRequest.Create(myFile2Get) as HttpWebRequest; // add the collection of the certificates objHttpWebReq.ClientCertificates = fcollection; // default method is GET // get the response to my request HttpWebResponse response = objHttpWebReq.GetResponse() as HttpWebResponse; // Get the stream associated with the response. Stream receiveStream = response.GetResponseStream(); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); // Pipes the stream to a higher level stream reader with the required encoding format. StreamReader readStream = new StreamReader(receiveStream, encode); Console.WriteLine("\r\nResponse stream received."); Char[] read = new Char[256]; // Reads 256 characters at a time. int count = readStream.Read(read, 0, 256); Console.WriteLine("HTML...\r\n"); while (count > 0) { // Dumps the 256 characters on a string and displays the string to the console. String str = new String(read, 0, count); Console.Write(str); count = readStream.Read(read, 0, 256); } Console.WriteLine(""); // Releases the resources of the response. response.Close(); // Releases the resources of the Stream. readStream.Close(); There is no error thrown, but instead of getting the content of the text file I am trying to read, all I get is message saying "Virtual user 'NameOfMyCertificate' is logged in". What am I doing wrong? How do I get to read the file and not just some status message? Is this something that is done in two steps: connect to the secure site and then request the file? If so, what would be the sequence? Any help will be highly appreciated. All the best, Eddie -----Original Message----- From: Discussion of advanced .NET topics. [mailto:[EMAIL PROTECTED] Behalf Of Peter Ritchie Sent: Monday, July 09, 2007 1:24 PM To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM Subject: Re: [ADVANCED-DOTNET] Accessing files over HTTPS -> for Peter Ritchie Hi Eddie, I haven't done it; but (if you want to use WebClient) I believe you'll have to specialize WebClient and override the GetWebRequest method. If you've got an http[s] URL, the default should create an HttpWebRequest object (you'll have to cast from the WebRequest return from the base, i.e. call the base first), and HttpWebRequest has a ClientCertificates collection property. You can add a X509Certificate/X509Certificate2 object to this collection. X509Certificate has lots of ways to load from file; or you can enumerate those stored in a store via the X509Store class[1]. Let us know how that works out. [1] http://msdn2.microsoft.com/en- us/library/system.security.cryptography.x509certificates.x509certificate2co llection(VS.80).aspx =================================== 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