如何使用ASP.NET

时间:2015-11-04 23:16:22

标签: 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 delegation and the current user account must be 
 configured to allow delegation.

IIS在默认的IIS_IUSRS帐户下运行,该帐户对相关文件夹具有“完全控制”权限。

我想要完成的是一个简单的Web应用程序,其中敏感文件可以由客户端上传,然后授权用户只能通过Web应用程序访问(无法通过文件系统,因为只有加密用户帐户才能解密文件)。

我意识到这个解决方案有缺点,但基于公钥/私钥的解决方案也是如此(你会遇到安全存储私钥以进行解密的问题)。我最感兴趣的是解决我的具体情况。

我怎样才能使这个工作?

1 个答案:

答案 0 :(得分:0)

我通过专门为应用程序池创建用户(具有最小权限和强密码)并将其用作应用程序池标识来实现此目的。

我原本想避免这样做(我认为它不太安全),但根据微软的“IIS 8安全最佳实践”(https://technet.microsoft.com/en-us/library/jj635855.aspx),这不是问题:

使用自定义身份帐户是可以接受的,但请务必为每个应用程序池使用不同的帐户