.net 调用php,使用证书从.net调用php Web服务

博客作者在尝试使用C#代码通过用户凭据和证书从PHP Web服务获取数据时遇到问题。当在代码中附加证书时,请求会超时,而移除证书则导致权限错误。问题似乎与服务器配置有关,因为同样的代码在作者的本地机器上工作正常。他们尝试在Web服务上移除证书,发现调用按预期工作,暗示了服务器端设置可能需要调整。
摘要由CSDN通过智能技术生成

我使用c#中的代码调用由用户/密码和证书保护的php web服务:

string wsurl = ConfigurationManager.AppSettings["Url"];

string wsuser = ConfigurationManager.AppSettings["User"];

string wspass = ConfigurationManager.AppSettings["Pass"];

string url = string.Format(wsurl, param1, param2);

System.Net.CredentialCache oCredentialCache = new System.Net.CredentialCache();

oCredentialCache.Add(new System.Uri(url), "Basic",

new System.Net.NetworkCredential(wsuser, wspass));

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.Timeout = TIMEOUT;

req.Credentials = oCredentialCache;

req.Method = "GET";

AttachCert(req);

//Get the data as an HttpWebResponse object

WebResponse resp = req.GetResponse();

AttachCert()调用是我将证书附加到请求的地方,如果我注释这一行,我不会得到超时,但会出现一个正确的错误,说明由于缺少证书,调用无法完成。

这是附件代码:

public static void AttachCert(HttpWebRequest Request)

{

// Obtain the certificate.

string certpath = ConfigurationManager.AppSettings["CertPath"];

X509Certificate Cert = X509Certificate.CreateFromCertFile(certpath);

ServicePointManager.CertificatePolicy = new CertPolicy();

Request.ClientCertificates.Add(Cert);

}

你知道为什么这在我的机器上有效而在服务器上不行吗?我们试图删除Web服务上的证书,它按预期工作。很明显电话里有些奇怪的东西,但我不知道是什么。

维森§

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值