Xamarin Visual Studio createcertfromfile path 不起作用



我已经工作了一整天,我需要使用 xamarin 在 c# 中与蚊子 MQTT 代理建立 SSL 连接。

我正在尝试从CertFile创建(证书路径)......

但是,我尝试的所有方法都不起作用。

该文件位于 C:\Cert\MyCARoot.cer

我试过 CreateFromCertFile(@"c:\Cert\MyCARoot.cer");

CreateFromCertFile("c:\\Cert\\MyCARoot.cer");

我不断得到的错误是

System.IO.FileNotFoundException: 找不到文件 "/C:\Cert\MyCARoot.cer">

基本上它添加一个"/",然后说路径不好。 我只是不明白我读到的所有内容都说这应该有效。

我不知道xamarin 中的路径有什么问题,但是有一个问题。 我确实找到了解决方案。

  1. 确保您从活动开始工作。
  2. 资产文件夹中添加要使用的文件(右键单击添加现有文件)
  3. 实例化一个 AssetManager 类 -- AssetManager assets = this。资产;

现在,这是我的应用程序可能与其他应用程序不同的地方,因为我想从我的资产创建一个字节[],我可以用来实例化x509。2 证书类。

我使用Stream和MemoryStream来获得我想要的结果,如下所示

AssetManager assets = this.Assets;
using (Stream input = assets.Open("ca-bundle.crt"))
{
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
data = ms.ToArray();
}
}

然后,我用我的新字节 [] 实例化了我的连接类,然后 bing、bang、boom 我有一个 ssl 连接到我的 mosquitto mqtt 代理。

我看到的其他应用程序资产。Open("fileInAsset")代替了其他操作的文件路径。

祝你好运

最新更新