Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF SSL.pfx绑定_C#_Rest_Wcf_Ssl_Https - Fatal编程技术网

C# WCF SSL.pfx绑定

C# WCF SSL.pfx绑定,c#,rest,wcf,ssl,https,C#,Rest,Wcf,Ssl,Https,我的API调用下面的另一个安全API是我的代码: string ID = Convert.ToString(ConfigurationManager.AppSettings["ID"]); string Password = Convert.ToString(ConfigurationManager.AppSettings["Password"]); string client_ID = Convert.ToString(ConfigurationManager.AppSettings["cli

我的API调用下面的另一个安全API是我的代码:

string ID = Convert.ToString(ConfigurationManager.AppSettings["ID"]);
string Password = Convert.ToString(ConfigurationManager.AppSettings["Password"]);
string client_ID = Convert.ToString(ConfigurationManager.AppSettings["client_ID"]);
string client_secret = Convert.ToString(ConfigurationManager.AppSettings["client_secret"]);
string patchURI = Convert.ToString(ConfigurationManager.AppSettings["SecureApi"]);
patchURI = patchURI + "?client_ID=" + client_ID + "&client_secret=" + client_secret;

string JsonStringParams = jsonStringRequest();

//ServicePointManager.Expect100Continue = true;
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

byte[] data = Encoding.UTF8.GetBytes(JsonStringParams);
var request = (HttpWebRequest)WebRequest.Create(patchURI);
request.KeepAlive = false;
request.Method = "POST";
request.ContentType = "application/json";


request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("UserName", LDAPID);
request.Headers.Add("Password", Password);
string requestData = JsonStringParams;
data = Encoding.UTF8.GetBytes(requestData);
Stream dataStream = request.GetRequestStream();
dataStream.Write(data, 0, data.Length);
dataStream.Close();
var response = request.GetResponse(); // failed at this stage Error : The request was aborted: Could not create SSL/TLS secure channel.",
string result = new StreamReader(response.GetResponseStream()).ReadToEnd();
result = new StreamReader(response.GetResponseStream()).ReadToEnd();
我的patchURI包含一个https链接,该链接需要一个.pfx SSL,并且客户端已经安装了相同的.cer/crt
当我在SOAPUI工具中使用patchURI并传递SSL时,我从客户端服务器得到响应,但当我通过此代码使用时,它会失败并生成错误:-未能创建SSL通道。

此错误通常表示尚未建立信任关系。为了在客户端和服务器端之间建立关系,我们应该在
受信任的根证书颁发机构
存储中安装彼此的证书。
建议不要使用
Http
客户端库调用WCF服务,除非由
WebHttpbinding
创建的WCF服务(
Restful WCF
服务)。我们通常使用客户机代理来调用WCFSOAPWeb服务。以下代码可用于在发送Http请求时手动验证证书

ServicePointManager.ServerCertificateValidationCallback += delegate
{
    return true;
};
此外,如果错误仍然存在,请发布完整的错误消息。
如果有什么我可以帮忙的,请随时告诉我。

这是一个“已安装相同的.cer/crt”的危险信号。除非您使用的是全功能测试证书,否则服务器和客户端必须各自拥有具有正确用途的证书。