2015-06-30 64 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。

我認爲在「導入」證書後,需要將其保存在密鑰庫或類似的東西中,並刪除文件,但我還沒有那麼遠。