如何使用ASP.NET中的File.Encrypt

如何使用ASP.NET中的File.Encrypt,asp.net,windows,security,iis,encryption,Asp.net,Windows,Security,Iis,Encryption,我有一个简单的C#ASP.NET MVC应用程序(在Windows Server 2012 R2和IIS 8.5上),用于将文件上载到服务器。我想使用File.encrypt(文件路径)自动加密这些文件,但是 System.IO.IOException occurred HResult=-2146499771 Message=The requested operation cannot be completed. The computer must be trusted for dele

我有一个简单的C#ASP.NET MVC应用程序(在Windows Server 2012 R2和IIS 8.5上),用于将文件上载到服务器。我想使用File.encrypt(文件路径)自动加密这些文件,但是

System.IO.IOException occurred
 HResult=-2146499771
 Message=The requested operation cannot be completed. The computer must 
 be trusted for delegation and the current user account must be 
 configured to allow delegation.
IIS是在默认IIS_IUSRS帐户下运行的,该帐户对所讨论的文件夹具有“完全控制”权限

我试图实现的是一个简单的Web应用程序,客户端可以上传敏感文件,然后授权用户只能通过Web应用程序访问这些文件(没有通过文件系统的直接访问,因为只有加密用户帐户才能解密文件)

我意识到这个解决方案有缺点,但基于公钥/私钥的解决方案也有缺点(您会遇到在哪里安全地存储私钥以进行解密的问题)。我主要感兴趣的是我的特定场景的解决方案


我怎样才能让它工作呢?

我是通过专门为应用程序池创建一个用户(具有最低权限和强密码)并将其用作应用程序池标识来工作的

我本来想避免这样做(我认为这样会不太安全),但根据微软的“IIS 8安全最佳实践”(SecurityBestPracticesforIIS 8)(),这不是一个问题:

使用自定义标识帐户是可以接受的,但请确保为每个应用程序池使用不同的帐户