2015-06-30 28 views
0

我想将WebRequest从我的应用程序中取出,并且需要添加客户端证书。 在我的纯C#的解决方案,我用下面两行是:Xamarin PCL中客户端证书的正确路径Android

X509Certificate myCert = X509Certificate.CreateFromCertFile(certPath); 
request.ClientCertificates.Add(myCert); 

的问题是,我不知道我应该为“证书路径”我的应用程序中使用。 我正在做一个Xamarin.Forms PCL项目并在Android上进行测试。 我发现,Android的我必须将文件放到我的项目的资产文件夹,但我不知道正确的路径是什么方法参数。 我的WebRequest实现在Android特定部分。

+0

我真的不明白你在问什么。你说你发现你必须把它放在资产文件夹中,那么你还想知道什么?它仍然无法找到该文件?看看这个; http://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/ –

+0

我对AssetManager的理解是它可以访问文件(例如读取它们)。但是对于我上面的方法,我需要资产目录中文件的'文件名'(完整路径)来访问此文件,并且我不知道如何获取此路径 – user3477737

回答

0

好吧,我没有得到的文件放在项目的路径,但我发现另一种解决方案:

  1. 获取的设备/仿真器在程序的任何路径从一个目录,它的 可能得到它:

    eg System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

  2. 复印证书手动经由DDMS设备/仿真器(在 Android装置监视器) - 恰好到由上面的方法 所示的路径。

  3. 使用此路径,包括您为 证书路径复制的文件名。

我还发现,对于我来说,证书似乎不能在xamarin中工作,如果它是pkcs12格式,但我不知道为什么。我已经将它转换为Pem。

我认为在“导入”证书后,需要将其保存在密钥库或类似的东西中,并删除文件,但我还没有那么远。