Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Httpclient,证书在某些pc上工作';s但不是其他的C#_C#_Windows_Certificate_Httpclient - Fatal编程技术网

Httpclient,证书在某些pc上工作';s但不是其他的C#

Httpclient,证书在某些pc上工作';s但不是其他的C#,c#,windows,certificate,httpclient,C#,Windows,Certificate,Httpclient,我已经制作了一个与我们的服务器api通信的应用程序 由于某些原因,此应用程序在某些PC上成功登录,但在其他PC上未成功登录。 如果不成功,我会从服务器收到一个JSON响应,表示未收到身份验证,因此会与服务器建立连接 此外,如果我运行Fiddler并启用https录制,我会在PC上得到与正常工作相同的结果。这让我相信应用程序之外的东西是问题的原因,但我真的不知道 有人对这个问题有什么想法吗? 我非常感谢你给我的建议 httpclient的代码 using (var handler = new Ht

我已经制作了一个与我们的服务器api通信的应用程序

由于某些原因,此应用程序在某些PC上成功登录,但在其他PC上未成功登录。 如果不成功,我会从服务器收到一个JSON响应,表示未收到身份验证,因此会与服务器建立连接

此外,如果我运行Fiddler并启用https录制,我会在PC上得到与正常工作相同的结果。这让我相信应用程序之外的东西是问题的原因,但我真的不知道

有人对这个问题有什么想法吗? 我非常感谢你给我的建议

httpclient的代码

using (var handler = new HttpClientHandler())
{
    handler.ClientCertificateOptions = ClientCertificateOption.Manual;

    try
    {                        
        var cert = SmartCardCertificate.GetDefaultCertificateStoredOnTheCard(); ;
        handler.ClientCertificates.Add(cert);

    }
    catch
    {
        cRSP_Response _error = new cRSP_Response()
        {
            errNo = 99,
            messageText = "No smartcard found, please insert smartcard and try again"
         };
         return JsonConvert.SerializeObject(_error);
     }

     handler.AllowAutoRedirect = true;
     handler.PreAuthenticate = true;
     using (var client = new HttpClient(handler))
     {                           
         client.BaseAddress = baseUri;
         HttpResponseMessage response = await client.GetAsync("regions");
                       
         //respone.ensuresuccessstatuscode();

         string repsonsecontent = await response.Content.ReadAsStringAsync();
         if (!response.IsSuccessStatusCode)
         {



         };
         return repsonsecontent;
     }
 }