出错部分看中间的注释:            string sPostData = string.Format("APIName={0}&APIVersion={1}&MerReqData={2}", sAPIName, sAPIVersion, "TEST");
    byte[] sData = Encoding.GetEncoding("GBK").GetBytes(sPostData);
            ServicePointManager.ServerCertificateValidationCallback = new                        System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; //SecurityProtocolType.Ssl3;
            X509Certificate myCrt = X509Certificate.CreateFromCertFile(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\File\\user.crt");
            string strUrl = "https://corporbank.icbc.com.cn:443/servlet/ICBCINBSEBusinessServlet";              
            byte[] sData = Encoding.GetEncoding("GBK").GetBytes(sPostData);            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
            myRequest.Method = "POST";
            myRequest.KeepAlive = true;
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; 
            myRequest.ClientCertificates.Add(myCrt);
            myRequest.ContentLength = sData.Length;              
            Stream sm = myRequest.GetRequestStream();
            sm.Write(sData, 0, sData.Length);
            sm.Close();            //运行下面这句出错,报错:
            //System.Net.WebException: 远程服务器返回错误: (403) 已禁止。
            // 在 System.Net.HttpWebRequest.GetResponse()            
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();            Encoding encod = System.Text.Encoding.GetEncoding("GBK");
            Stream smRes = myResponse.GetResponseStream();
            StreamReader sr = new StreamReader(smRes, encod);
            string sResult = sr.ReadToEnd();
            //System.Xml.XmlDocument doc = new System.Xml.XmlDocument();            return sResult;