Gpg4win - 允许应用程序池访问公钥

时间:2016-02-09 13:16:16

标签: c# openpgp mimekit

我在c#控制台应用程序上实现了OpenPGP加密,该应用程序使用MimeKit和Gpg4win发送PGP加密电子邮件。我有控制台应用程序正常运行,但当我为在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 \应用程序数据\ gnupg \

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

提前致谢

1 个答案:

答案 0 :(得分:0)

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

创建另一个帐户并为公钥提供此访问权限和必要权限,然后将此帐户用作应用程序池标识。