A
Aung
Has anybody develop RFC1950 and RFC1951 compliant Zip utility?
Any pointer will be appreciated.
Any pointer will be appreciated.
Aung said:Has anybody develop RFC1950 and RFC1951 compliant Zip utility?
Any pointer will be appreciated.
Aung said:Hello,
I am having a problem with WebRequest class. I used the following code to
post some data to a page and retrive back the response. It works fine with
http:// connection. When i use that with https:// connection, it thrown an
exception "The underlying connection was closed: Could not establish trust
relationship with remote server.". I am using self sign certificate on the
web server and the root and CA certificates are installed on the client
machine using the following code.
your suggestions will be great appreciated.
Aung
public string postForm(string url, string postData)
{
string retStr="", tempStr;
HttpWebResponse result = null;
try
{
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
1.0.3705)";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;
if (postData != null)
{
int i=0, j;
while(i<postData.Length)
{
j=postData.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
postData.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
UrlEncoded.Append(postData.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
result = (HttpWebResponse) req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader sr = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
tempStr = new String(read, 0, count);
retStr += tempStr;
count = sr.Read(read, 0, 256);
}
retStr.Trim();
}
catch (Exception e)
{
retStr = "Error!!";
}
finally
{
if ( result != null )
{
result.Close();
}
}
return retStr;
}
Justin Rogers said:Best way to test your client is see if you can do the same from IE. Most of
the System.Net classes take configuration from IE behind the scenes. If it
doesn't work in IE and you do get it working, make sure to close all
instances of IE so the data persists before re-running the .NET application.
Some changes are considered dynamic and won't be written to the registry
until close.
Hopefully you find that IE won't connect either. I find it hard to believe
that .NET would have a more stringent implementation of SSL than IE. But it
is possible.
--
Justin Rogers
DigiTec Web Consultants, LLC.
Aung said:Hello,
I am having a problem with WebRequest class. I used the following code to
post some data to a page and retrive back the response. It works fine with
http:// connection. When i use that with https:// connection, it thrown an
exception "The underlying connection was closed: Could not establish trust
relationship with remote server.". I am using self sign certificate on the
web server and the root and CA certificates are installed on the client
machine using the following code.
your suggestions will be great appreciated.
Aung
public string postForm(string url, string postData)
{
string retStr="", tempStr;
HttpWebResponse result = null;
try
{
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
1.0.3705)";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;
if (postData != null)
{
int i=0, j;
while(i<postData.Length)
{
j=postData.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
postData.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
UrlEncoded.Append(postData.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
result = (HttpWebResponse) req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader sr = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
tempStr = new String(read, 0, count);
retStr += tempStr;
count = sr.Read(read, 0, 256);
}
retStr.Trim();
}
catch (Exception e)
{
retStr = "Error!!";
}
finally
{
if ( result != null )
{
result.Close();
}
}
return retStr;
}
Aung said:Yes. i used IE before calling from my application. IE popup with a warning
message telling me that "certificate on the server is not the same name bla
bla. " and when i hit OK, i can view the SSL page with form.
my .NET application cannot.
MostJustin Rogers said:Best way to test your client is see if you can do the same from IE.Butof
the System.Net classes take configuration from IE behind the scenes. If it
doesn't work in IE and you do get it working, make sure to close all
instances of IE so the data persists before re-running the .NET application.
Some changes are considered dynamic and won't be written to the registry
until close.
Hopefully you find that IE won't connect either. I find it hard to believe
that .NET would have a more stringent implementation of SSL than IE.thrownit
is possible.an..NETexception "The underlying connection was closed: Could not establish trust
relationship with remote server.". I am using self sign certificate on the
web server and the root and CA certificates are installed on the client
machine using the following code.
your suggestions will be great appreciated.
Aung
public string postForm(string url, string postData)
{
string retStr="", tempStr;
HttpWebResponse result = null;
try
{
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
CLR1.0.3705)";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;
if (postData != null)
{
int i=0, j;
while(i<postData.Length)
{
j=postData.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
postData.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
UrlEncoded.Append(postData.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
result = (HttpWebResponse) req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader sr = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
tempStr = new String(read, 0, count);
retStr += tempStr;
count = sr.Read(read, 0, 256);
}
retStr.Trim();
}
catch (Exception e)
{
retStr = "Error!!";
}
finally
{
if ( result != null )
{
result.Close();
}
}
return retStr;
}
Drebin said:Egads!! BAD cross-poster - BAD!!
Anyhow, yes - this is exactly what the problem is. You can't programatically
specify a trust list (at least I haven't run across a way) - so even if you
log in with that account, and add the certificate authority -
programatically - it will still not trust that CA.
The ONLY way I've seen this or been able to get this to work (because I
needed to do the same thing) - is you have to get real certificates, like
from Verisign or Thawte..
Aung said:Yes. i used IE before calling from my application. IE popup with a warning
message telling me that "certificate on the server is not the same name bla
bla. " and when i hit OK, i can view the SSL page with form.
my .NET application cannot.
MostJustin Rogers said:Best way to test your client is see if you can do the same from IE.Ifof
the System.Net classes take configuration from IE behind the scenes.
itButdoesn't work in IE and you do get it working, make sure to close all
instances of IE so the data persists before re-running the .NET application.
Some changes are considered dynamic and won't be written to the registry
until close.
Hopefully you find that IE won't connect either. I find it hard to believe
that .NET would have a more stringent implementation of SSL than IE.codeit
is possible.
--
Justin Rogers
DigiTec Web Consultants, LLC.
Hello,
I am having a problem with WebRequest class. I used the following
tofinepost some data to a page and retrive back the response. It works
withthrownhttp:// connection. When i use that with https:// connection, itonan
exception "The underlying connection was closed: Could not establish trust
relationship with remote server.". I am using self sign certificate
theweb server and the root and CA certificates are installed on the client
machine using the following code.
your suggestions will be great appreciated.
Aung
public string postForm(string url, string postData)
{
string retStr="", tempStr;
HttpWebResponse result = null;
try
{
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET
CLR
1.0.3705)";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;
if (postData != null)
{
int i=0, j;
while(i<postData.Length)
{
j=postData.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
postData.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
UrlEncoded.Append(postData.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
result = (HttpWebResponse) req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader sr = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
tempStr = new String(read, 0, count);
retStr += tempStr;
count = sr.Read(read, 0, 256);
}
retStr.Trim();
}
catch (Exception e)
{
retStr = "Error!!";
}
finally
{
if ( result != null )
{
result.Close();
}
}
return retStr;
}
Joe Kaplan (MVP - ADSI) said:A thing that I have found that can help is to implement a class based on
ICertificatePolicy that handles the CheckValidationResult method. If you
set an instance of your class to the ServicePointManager.CertificatePolicy
property, you can override the behavior of certificate handling errors.
Returning true will cause the system to ignore all errors, which is
sometimes helpful for testing (but a bad a idea for production code).
HTH,
Joe K.
MostJustin Rogers said:Best way to test your client is see if you can do the same from IE.Butof
the System.Net classes take configuration from IE behind the scenes. If it
doesn't work in IE and you do get it working, make sure to close all
instances of IE so the data persists before re-running the .NET application.
Some changes are considered dynamic and won't be written to the registry
until close.
Hopefully you find that IE won't connect either. I find it hard to believe
that .NET would have a more stringent implementation of SSL than IE.thrownit
is possible.an..NETexception "The underlying connection was closed: Could not establish trust
relationship with remote server.". I am using self sign certificate on the
web server and the root and CA certificates are installed on the client
machine using the following code.
your suggestions will be great appreciated.
Aung
public string postForm(string url, string postData)
{
string retStr="", tempStr;
HttpWebResponse result = null;
try
{
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
CLR1.0.3705)";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;
if (postData != null)
{
int i=0, j;
while(i<postData.Length)
{
j=postData.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
postData.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
UrlEncoded.Append(postData.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
result = (HttpWebResponse) req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader sr = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
tempStr = new String(read, 0, count);
retStr += tempStr;
count = sr.Read(read, 0, 256);
}
retStr.Trim();
}
catch (Exception e)
{
retStr = "Error!!";
}
finally
{
if ( result != null )
{
result.Close();
}
}
return retStr;
}
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.