Multimobile Development: Building Applications for any Smartphone
Compact Framework: https through proxy server
Messages   Related Types
This message was discovered on microsoft.public.dotnet.framework.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.

Mike
I'm posting this here because no one responded to my post in the compact
framework NG and this is a MSDN "managed" newsgroup and I'm a MSDN
subscriber.

I'm unable to make a https connection through a proxy server using
the compact framework. I can connect with no problem using http, but when I
add the "s" after "http" in the URI, I get a System.Net.WebException raised:
System.Net.WebException.Message = "Could not establish secure channel for
SSL/TLS"

Here is what the code looks like (VB):

----------------------------------------------------------------------------
------
myRequest = Utils.CreateWebRequest("https://www.server.com/page.php")
Try

myResponse = myRequest.GetResponse()

Catch ex As System.Net.WebException ' Exception from above line is caught
here

msgbox ex.message

End Try
----------------------------------------------------------------------------
-----

I can also connect to the https address without a proxy server so it seems
to be the combination of https and the proxy server that is the problem. I
have seen other posts about this, but no resolutions.

Reply to this message...
Vote that this is a GOOD answer...
 
Really good experience at the Apple Store
MonoDroid – looking *awesome*
 
    
Peter Huang (VIP)
Hi Mike,

First of all, I would like to confirm my understanding of your issue.
From your description, I understand that on a smart device(Pocket PC or
windows CE?), the httpwebrequest in compact framework did not work if we
connect to https website via proxy, but we can connect to https site
directly.(That is to say if we connect to the https website directly the
code should be work).

Have I fully understood you? If there is anything I misunderstood, please
feel free to let me know.

I think you may try to lauch the ie in the pocket pc or windows ce and
navigate to the https website via the proxy, did that work for you?
Can you post the whole StackTrace and the innerexception when the error
occur?(Try to Catch e As Exception)

I look forward to hearding from you.

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
[Original message clipped]

Pocket PC 2003

[Original message clipped]

Correct.

[Original message clipped]

Yes, that works.

[Original message clipped]

The StackTrace property is not implemented in the Compact Framework.
InnerException is Nothing.

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Peter Huang (VIP)
Hi Mike,

I think you may try to set the webproxy when you using the httpwebrequest
to access a https site via proxy.
HttpWebRequest.Proxy Property [C#]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/
frlrfSystemNetHttpWebRequestClassProxyTopic.asp

To further troubleshoot the problem, you may try to run code on a PC, that
is on the .net framework not the compact framework to see if that works for
you.

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
I am using the Proxy property. That's why it works with regular http.

""Peter Huang"" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
First volume of Multimobile Development nearly ready to go to press
A mention on Developing for the iPhone and Android: The pros and cons
 
    
Ashley A Elenjickal [MS] (VIP)
Hello Mike,
Can you post a simple repro sample so that I can make sure we are working
on the same code?

Thank you,
Ashley Antony Elenjickal
Devp Support - Windows Embedded
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
| Reply-To: "Mike" <Click here to reveal e-mail address>
| From: "Mike" <Click here to reveal e-mail address>
| References: <Click here to reveal e-mail address>
<Click here to reveal e-mail address>
<OWqUFM#Click here to reveal e-mail address>
<Click here to reveal e-mail address>
| Subject: Re: Compact Framework: https through proxy server
| Date: Wed, 2 Jun 2004 09:50:30 -0400
| Lines: 29
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1409
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409
| Message-ID: <#Click here to reveal e-mail address>
| Newsgroups: microsoft.public.dotnet.framework
| NNTP-Posting-Host: adsl-068-016-172-251.sip.mco.bellsouth.net
68.16.172.251
| Path:
cpmsftngxa10.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13
.phx.gbl
| Xref: cpmsftngxa10.phx.gbl microsoft.public.dotnet.framework:72641
| X-Tomcat-NG: microsoft.public.dotnet.framework
|
| I am using the Proxy property. That's why it works with regular http.
|
| ""Peter Huang"" <Click here to reveal e-mail address> wrote in message
| news:Click here to reveal e-mail address...
| > Hi Mike,
| >
| > I think you may try to set the webproxy when you using the
httpwebrequest
| > to access a https site via proxy.
| > HttpWebRequest.Proxy Property [C#]
| >
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/
| > frlrfSystemNetHttpWebRequestClassProxyTopic.asp
| >
| > To further troubleshoot the problem, you may try to run code on a PC,
that
| > is on the .net framework not the compact framework to see if that works
| for
| > you.
| >
| > Best regards,
| >
| > Peter Huang
| > Microsoft Online Partner Support
| >
| > Get Secure! - www.microsoft.com/security
| > This posting is provided "AS IS" with no warranties, and confers no
| rights.
| >
|
|
|

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
No, sorry, I don't have time for that. You should attempt an https request
through a proxy server using the WebRequest object in the compact framework.
Let me know if it works for you.

""Ashley A Elenjickal [MS]"" <Click here to reveal e-mail address> wrote in
message news:Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
First chapters of Multimobile Development book now available on Apress Alpha program
iPad
 
    
Nathan Lewis (VIP)
Mike,

I was asked to help out on this problem, so I created a small Pocket PC
2003 application that includes the following code:

Private Function GetWebResponse( _
ByVal ProxyName As String, _
ByVal URI As String) As Net.WebResponse

Dim Request As Net.WebRequest

Request = Net.HttpWebRequest.Create(URI)
Request.ContentType = "text/html"
Request.Proxy = New Net.WebProxy(ProxyName)

GetWebResponse = Request.GetResponse()

End Function

Using the above code, I was able to connect to https://www.verisign.com
through our proxy server here with no problems. If this code does not work
for you, could you please give me an example of a secure site you are
having problems with, so that I can test against that site? Also, how are
you specifying the name of your proxy server, etc.? Any details you can
provide would be a tremendous help.

Thank you,

Nathan Lewis
Support Engineer
Developer Support - Windows Mobile & Embedded Systems
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
Nathan - Thanks for helping with this. I neglected to mention that the
problem only occurrs when the proxy server requires authentication. Your
code works for me when I change the "HTTP Proxy Authentication" setting on
my proxy server to "None". But when I change it to "Required", the code
fails with the "Could not establish secure channel for SSL/TLS" message even
when I specify the correct user name and password for the Credentials
property of the WebProxy object. I know I'm doing it correctly because it
works if I just change "https:" to "http:".

Sorry I forgot to mention the part about proxy authentication earlier. Can
you change your proxy server to require authentication and try it again?
I'm using a proxy server called "Proxy+" which can be downloaded here:
http://www.proxyplus.cz

"Nathan Lewis" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Nathan Lewis (VIP)
| Nathan - Thanks for helping with this. I neglected to mention that the
| problem only occurrs when the proxy server requires authentication. Your
| code works for me when I change the "HTTP Proxy Authentication" setting on
| my proxy server to "None". But when I change it to "Required", the code
| fails with the "Could not establish secure channel for SSL/TLS" message
even
| when I specify the correct user name and password for the Credentials
| property of the WebProxy object. I know I'm doing it correctly because it
| works if I just change "https:" to "http:".
|
| Sorry I forgot to mention the part about proxy authentication earlier.
Can
| you change your proxy server to require authentication and try it again?
| I'm using a proxy server called "Proxy+" which can be downloaded here:
| http://www.proxyplus.cz
|

Hmm... we're already behind a pretty firm firewall here, for obvious
reasons, so there's not really any way for me to set up an authenticating
proxy server. That is a pretty slick looking little program, though. I
did try it, even though I already knew it wouldn't work - and I was right.
:(

Have you tried my code *without* using authentication on the proxy server?
I'm just wondering if it's really a certificate problem, rather than an
authentication problem. You might also try creating a simple desktop
application, and see if it has the same problems. Here's a site you might
want to take a look at that has some useful sample code:
http://samples.gotdotnet.com/quickstart/howto/doc/WebRequests/clientGETwithP
roxy.aspx

I also found an interesting article on The Code Project site you might look
at. It's in C#, but it shouldn't be difficult to port to VB:

How to use HttpWebRequest and HttpWebResponse in .NET
http://www.codeproject.com/csharp/HttpWebRequest_Response.asp

Looking over these two articles, it looks to me like you might want to use
both the GlobalProxySelection and CredentialCache objects in your code, if
you aren't already. It shouldn't be too difficult to whip up a simple
test program, but I have no way of knowing whether or not it would work.
Can you try some of these ideas out and let me know how it goes?

Thank you,

Nathan Lewis
Support Engineer
Developer Support - Windows Mobile & Embedded Systems
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
As I stated, your code DOES WORK without proxy authentication.

GlobalProxySelection is a different way of specifying the proxy server. I'm
using the Proxy property of the Request object to specify the proxy server,
which works in every case except the combination of https and proxy
authentication.

MSDN Library - "The CredentialCache class stores credentials for multiple
Internet resources." I am only accessing 1 internet resource.

[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
New book project – Multimobile Development: Building Applications for any Smartphone
Dive into HTML5
 
    
Nathan Lewis (VIP)
Mike,

I got hold of one of the .NET Compact Framework guys and dragged him in on
this issue. He was able to locate a suitable proxy server we could test
with, and we spent several hours working together on this. After talking
with a couple of guys from the development team, and reproducing the
problem for them, the general consensus is that this is a bug in the .NET
Compact Framework. The good news is that this problem has already been
fixed for a future release, though I do not know when that will become
available.

I'm sorry I couldn't give you better news than that. Please let me know if
there is anything further I can do.

Sincerely,

Nathan Lewis
Support Engineer
Developer Support - Windows Mobile & Embedded Systems
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
Thanks for all your help with this Nathan. My only question is, if it is a
known bug, is this bug documented somewhere? We developers should be able
to read about known bugs somewhere so that we don't knock our heads against
a wall trying to get something to work. You would also have been able to
check this list of known bugs so you wouldn't have had to spend so much time
on this.

Thanks again.

"Nathan Lewis" <Click here to reveal e-mail address> wrote in message
news:aQ3$Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
Steve Jobs’ thoughtful/thought provoking Thoughts on Flash…
Handy list of countries in CSV format
 
    
Nathan Lewis (VIP)
| Thanks for all your help with this Nathan. My only question is, if it is
a
| known bug, is this bug documented somewhere? We developers should be able
| to read about known bugs somewhere so that we don't knock our heads
against
| a wall trying to get something to work. You would also have been able to
| check this list of known bugs so you wouldn't have had to spend so much
time
| on this.
|
| Thanks again.

Actually, no, it wasn't a known bug - hence all the time spent with the
NETCF developers. But it does seem as if someone noticed it and fixed it
at some point, so I guess that's good. I'll check with my team leader and
see if we can get this documented in a KB article or something.

If you have no objections, I'll go ahead and close this case. Feel free to
post any followup questions you may have, though.

Sincerely,

Nathan Lewis
Support Engineer
Developer Support - Windows Mobile & Embedded Systems
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mike
If somebody noticed it, then it was a known bug. Maybe they just didn't
bother to document it.

[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Nathan Lewis (VIP)
| If somebody noticed it, then it was a known bug. Maybe they just didn't
| bother to document it.

I have no idea how something this big slipped by, but I am certainly glad
that there is already a fix in the works. I sincerely apologize for the
inconvenience.

Nathan Lewis
Support Engineer
Developer Support - Windows Mobile & Embedded Systems
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Nathan Lewis (VIP)
Mike,

Since you have expressed no objections, I will close this issue. Please
feel free to contact me directly should you have any follow-up questions
related to this issue.

Sincerely,

Nathan Lewis
Support Engineer
Developer Support - Windows Mobile & Embedded Systems
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Reply to this message...
Vote that this is a GOOD answer...
 
 
 
System.Diagnostics.StackTrace
System.Net.CredentialCache
System.Net.GlobalProxySelection
System.Net.HttpWebRequest
System.Net.HttpWebResponse
System.Net.WebException
System.Net.WebProxy
System.Net.WebRequest
System.Net.WebResponse




Ad
BootFX
Reliable and powerful .NET application framework.
iOS, Android and Windows Phone Development Training and Consultancy
Hosted by RackSRV Communications
 
Multimobile Development: Building Applications for any Smartphone
Copyright © AMX Software Ltd 2008-2010. Portions copyright © Matthew Baxter-Reynolds 2001-2010. All rights reserved.
Contact Us - Terms of Use - Privacy Policy - 4.0.30129.1734