c# - 如何在 C# 中使用 Bouncy CaSTLe 将 X.509 v.3 谷歌证书添加到项目中

标签 c# xamarin x509certificate2 service-accounts

我一直在尝试在 Xamarin.iOS 上使用 Google 的服务帐户。 PCL 项目不支持 System.Security.Cryptography.X509Certificates,因此我需要一种不同的方式(如 Bouncy CaSTLe 或 PCLCrypto)将 X509Certificate 加载到项目中。基本上,在谷歌的文档中,提取证书的方式如下:

var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);

        ServiceAccountCredential credential = new ServiceAccountCredential(
           new ServiceAccountCredential.Initializer(serviceAccountEmail)
           {
               Scopes = new[] { PlusService.Scope.PlusMe }
           }.FromCertificate(certificate));

问题是,在 Bouncy CaSTLe 中加载证书(代码的第一行)的替代方法是什么?

最佳答案

您可以将 PCL 项目的目标更改为 .NETStandard。在此之后,

System.Security.Cryptography.X509Certificates

支持。

您可以通过以下步骤完成:

  1. 右键单击您的 PCL 项目
  2. 点击属性
  3. 点击图书馆
  4. 点击“目标 .NET 平台标准”
  5. 接受
  6. 转到 project.json 并添加:"netstandard1.3": { "imports": "portable-net45+win8+wp8+wpa81"}
  7. 添加您的 Nuget 包。

对于第 4 步,您必须删除所有 Nuget 包,在第 6 步之后,您必须重新安装它们。

关于c# - 如何在 C# 中使用 Bouncy CaSTLe 将 X.509 v.3 谷歌证书添加到项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820804/

相关文章:

xamarin - 目标 'MonoAndroid,Version=v6.0' 项目依赖项

azure - .NET Core 2.2、Azure Web API 新 X509Certificate2 "The system cannot find the file specified"和 "access denied"

c# - 克隆 Windows 应用商店应用程序 - 应该更改哪些内容?

xamarin - DevForce 支持 Xamarin?

c# - 带有 azure keyvault 证书的 Asp.net 核心 docker 中的 Https 不起作用

android - 将 ActionBar 标题对齐 Xamarin

c# - 如何使用自签名证书使用私钥创建签名的 x509certificate

c# - 如何将多个 .p12 证书合并为一个 .pfx 文件

c# - ASP.net c# - 无法加载类型

c# - NHibernate:映射 IList 属性