0

我已经使用 MimeKit 和 Gpg4win 在发送 PGP 加密电子邮件的 ac# 控制台应用程序上实现了 OpenPGP 加密。我的控制台应用程序运行良好,但是当我为在 IIS 中运行的网站实现此功能时,找不到公钥。我收到这样的错误:

MimeKit.Cryptography.PublicKeyNotFoundException: The public key could not be found.
  at MimeKit.Cryptography.OpenPgpContext.GetPublicKey(MailboxAddress mailbox)
  at MimeKit.Cryptography.OpenPgpContext.GetPublicKeys(IEnumerable`1 mailboxes)
  at MimeKit.Cryptography.OpenPgpContext.Encrypt(IEnumerable`1 recipients, Stream content)
  at MimeKit.Cryptography.MultipartEncrypted.Create(OpenPgpContext ctx, IEnumerable`1 recipients, MimeEntity entity)

我很确定这仅在我的控制台应用程序中有效,因为我在我的用户配置文件下运行它,并且 Gpg4win 将我的公钥存储在我的配置文件应用程序数据下,即在 C:\Documents and Settings\me\Application Data\ gnupg\

如何允许在特定应用程序池配置文件下运行的网站访问这些密钥?

提前致谢

4

1 回答 1

0

默认情况下,应用程序池的身份设置为应用程序池身份,一个虚拟帐户,访问受限,在这种情况下并不理想。

创建另一个帐户并授予此访问权限和对公钥的必要权限,然后将此帐户用作应用程序池身份。

于 2016-02-09T14:41:42.563 回答