【问题标题】:Can you access the client's certificate store and sign data with Blazor?您可以访问客户端的证书存储并使用 Blazor 签署数据吗?
【发布时间】:2020-01-15 15:44:23
【问题描述】:

我正在尝试替换用于在 ASP.NET 应用程序中对数据进行数字签名的旧 Java 小程序。

我正在尝试从客户端证书访问私钥,对一些数据进行签名,然后将签名数据发送回服务器。

我一直在查看 PKI.JS,但如果有一种 C# 方法可以使用 Blazor 完成此任务,那么外部依赖就会减少。

【问题讨论】:

  • Blazor 服务器端还是 Blazor 客户端(WebAssembly)?在服务器端,您可以使用完整的 Core 3 库。
  • 它必须是客户端。我需要访问用户的证书存储才能找到签名证书并访问其关联的私钥来签署数据。在服务器端,您只能访问客户端证书的公钥。
  • 经过更多研究后,WebAssembly、Blazor 或任何其他 JS 库似乎都无法访问智能卡或操作系统证书存储上的签名证书。人们一直在创建 Chrome 插件来做到这一点,但这对我来说不是一个可行的选择。
  • 有点道理,不是吗?您想访问开始上传您的私钥的页面吗?
  • 一点澄清:目的不是在任何地方上传某人的私钥。数据将在客户端签名并使用公钥发送回服务器。到今天为止,我仍然看不到从 Java 小程序、silverlight 或自定义浏览器扩展之外的客户端技术访问本地证书存储。这些都不是 IMO 可行的选择。

标签: digital-signature blazor pki


【解决方案1】:

这可以通过 fortifyapp.com 实现

【讨论】:

    【解决方案2】:

    我正在寻找解决方案。我的想法是将签名数据保存到客户端机器的本地文件夹中。我的 c# 签名应用程序(本地安装在客户端计算机上)监视文件夹并执行签名。之后,它将签名数据放入 Azure Blob 存储并通过 Azure Event Grid 通知浏览器。

    与签名相关的一切都是我的 c# 代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 2010-12-11
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      相关资源
      最近更新 更多