我在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 \
如何允许在特定应用池配置文件下运行的网站访问这些密钥?
提前致谢
答案 0 :(得分:0)
默认情况下,应用程序池的标识设置为应用程序池标识,这是一个虚拟帐户,具有受限访问权限,在这种情况下并不理想。
创建另一个帐户并为公钥提供此访问权限和必要权限,然后将此帐户用作应用程序池标识。