调用加了SSL签名的WebService

mleidong 2008-07-04 05:14:30
在.NET调用加了SSL验证的WebService
System.Net.WebException: 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 ---> System.Security.Authentication.AuthenticationException: 根据验证过程,远程证书无效。
在 System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)


请求!!!!!详解
...全文
2384 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq417353840 2011-12-24
  • 打赏
  • 举报
回复
哈哈!这个问题还不好解决,如果你只是调试的话,那直接把 private bool ValidateRemoteCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
这个方法里面的代码全注释掉,直接返回True不就行啦!
return true;
我已经试过了,可以正常运行的


原因是你没有服务器上的证书,所以程序运行那方法里面验证证书会出错的。
madStone_l 2011-04-01
  • 打赏
  • 举报
回复
问题到底最后怎么解决呀,给个回复。我也遇到和楼主一样的问题。纠结呀
czz618 2010-07-27
  • 打赏
  • 举报
回复
我也是这种问题,问下你的问题是怎么解决的。。。希望你能回复下,先谢过了……
smilingfanny 2009-07-28
  • 打赏
  • 举报
回复
ding
fuadam 2008-07-09
  • 打赏
  • 举报
回复
你ie能访问就不应该是证书问题

你这个webservice能访问吗,我试试
mleidong 2008-07-09
  • 打赏
  • 举报
回复
我是在vs2005自带的IIS服务器里面调试了,没问题可以访问到远程的webservice
但是我把写好的程序一发布,架设在IIS环境下,就没法访问远程的webservice 提示403错误,应该是证书错误吧?
fuadam 2008-07-08
  • 打赏
  • 举报
回复
调式程序?客户端直接连不上iis?
mleidong 2008-07-08
  • 打赏
  • 举报
回复
mleidong 2008-07-08
  • 打赏
  • 举报
回复
直接在客户IE输入webservice的地址,访问没有问题!
。net的web引用也可以引用。
在IIS下调试程序的时候出错!
mleidong 2008-07-08
  • 打赏
  • 举报
回复
通过web可以访问,我这边有加密证书,导入IE就可以访问了
fuadam 2008-07-08
  • 打赏
  • 举报
回复
客户端的IE就可以访问没问题?
fuadam 2008-07-08
  • 打赏
  • 举报
回复
403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: • 403.1 - 执行访问被禁止。
• 403.2 - 读访问被禁止。
• 403.3 - 写访问被禁止。
• 403.4 - 要求 SSL。
• 403.5 - 要求 SSL 128。
• 403.6 - IP 地址被拒绝。
• 403.7 - 要求客户端证书。
• 403.8 - 站点访问被拒绝。
• 403.9 - 用户数过多。
• 403.10 - 配置无效。
• 403.11 - 密码更改。
• 403.12 - 拒绝访问映射表。
• 403.13 - 客户端证书被吊销。
• 403.14 - 拒绝目录列表。
• 403.15 - 超出客户端访问许可。
• 403.16 - 客户端证书不受信任或无效。
• 403.17 - 客户端证书已过期或尚未生效。
• 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。
• 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
• 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
mleidong 2008-07-08
  • 打赏
  • 举报
回复
这是我的代码,错误就是请求因 HTTP 状态 403 失败: Access Forbidden。

mleidong 2008-07-08
  • 打赏
  • 举报
回复
protected void Button2_Click(object sender, EventArgs e)
{
HeaoSms.SMSHEAO Stime = new HeaoSms.SMSHEAO();
string certificateFile = @"J:\ClientSms.cer";//从IE中导出的验证证书地址
X509Certificate cert = X509Certificate.CreateFromCertFile(certificateFile);// 读取证
//HeaoSms.SMSHEAO Stime = new HeaoSms.SMSHEAO();
Stime.Timeout =5000;//超时设置
try
{
//装入证书
Stime.ClientCertificates.Add(cert);
System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertificateValidationCallback);

}
catch (Exception ex)
{
Console.Write(ex.Message);
}
string KSH = "07410101110005";
string SFZH = "410103198806150209";

try
{

Label1.Text = Stime.getKSLQ(KSH, SFZH);//获取录取信息
Label2.Text = Stime.getKSXM(KSH, SFZH);
Stime.Dispose();

}
catch (Exception ex)
{
Label1.Text = ex.Message;
}

}
public static bool RemoteCertificateValidationCallback(
Object sender,
X509Certificate certificate,
X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors
)
{
//Return True to force the certificate to be accepted.
return true;
}
fuadam 2008-07-08
  • 打赏
  • 举报
回复
不需要,你到底报什么错啊,RemoteCertificateCallback回调函数都没进入?
mleidong 2008-07-08
  • 打赏
  • 举报
回复
IIS进程帐户需要设置么?
mleidong 2008-07-08
  • 打赏
  • 举报
回复
是不是IIS没有访问系统证书区域了权限?
fuadam 2008-07-08
  • 打赏
  • 举报
回复
那你用客户端访问,看报的错误
mleidong 2008-07-08
  • 打赏
  • 举报
回复
烈火焚身 2008-07-07
  • 打赏
  • 举报
回复
顶上去
加载更多回复(14)

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧