最简单的方法就是:
先导入到IE的证书里,然后再从那个证书里选择刚才导入的证书,导出为不带私钥的证书,选择格式为base64编码,最后用记事本打开导出的.cer文件,复制里面的文本,但不要把头尾的注释也复制了。

解决方案 »

  1.   

    X509Certificate2 cert = new X509Certificate2(path);
    MessageBox.Show(Convert.ToBase64String(cert.RawData));
      

  2.   

    不正确啊.......我需要通过pfx文件得到base64格式的cer文件或者对应的encodeValue
      

  3.   

    废话,pfx是含有私钥的,它的base64怎么都不可能和cer的一样,cer是不带私钥的,只有公钥。
      

  4.   

    只需要公钥,就调用GetPublicKey方法
    X509Certificate2 cert = new X509Certificate2(path);
    MessageBox.Show(Convert.ToBase64String(cert.GetPublicKey()));
      

  5.   

    貌似cert.GetPublicKeyString()更方便,你自己试试。
      

  6.   

    不行啊,这个和wcf客户端配置文件中的
    <identity>   <certificate encodedValue="AwAAAAEAAAAUAAAAhXoe..." /></identity>
    不同啊
      

  7.   

    我了个去,四颗星就了不起了还是咋的?有没有看清我的问题?没说你不看清问题就算了,还来说我了,这年头,什么世道啊,你看清楚了:
    请问,我如何从一个.pfx证书文件中获得这个encodeValue?
    或者怎么从.pfx证书文件生成基于base64编码的.cer文件?再看看你说的所谓正确答案:
    X509Certificate2 cert = new X509Certificate2(path);
    MessageBox.Show(Convert.ToBase64String(cert.RawData)); 你给我从pfx证书new一个X509Certificate2 出来看看,看看他的RawData是不是我要的东西!
    我没做实验?擦了,你这个所谓正确答案,必须是从基于base64编码的cer证书new出来的,你用pfx试试,我勒个去,什么世道!我用pfx试了所有的我认为可能的方法,都没有搞出来,你这两行破代码,我只能四个字:我勒个去!
      

  8.   

    你神经病啊,我这里测试下来就是和基于base64编码的cer证书内容完全一样,你不会操作居然怪我的答案有问题,而且你自己看你的回帖间隔,是想要解决问题的态度吗?别人着急都是在线等,最起码2小时后看一次是否有回复,你呢?一周看一次,居然还有脾气,滚吧,没人高兴给你解决问题。
      

  9.   

    我了个去,你贴图出来,我就想问问你了,你怎么用
    X509Certificate2 cert = new X509Certificate2(path)这个不带password的构造函数把带有私有的pfx证书给new出来?啊?到底谁没动手做实验,大家一看都清楚了,操了,谁规定了我要一天24小时守在论坛上了?晚回复了?有没有看最上面几个回复,我哪里晚了?你没看清问题也就算了,我也不能拿你怎么样,毕竟是我在问问题,反倒还说我回复晚了,我就想问问你了,你去酒店吃饭,服务员不给你点菜,还追着要你住宿,不住店就骂你,你怎么想?这个问题要不要去问问元芳?
      

  10.   

    我很好奇,vs里自动引用wsdl这个encodedValue值是怎么来的,一大串。有知道的回复下我。谢谢