Encryption 是否可以覆盖MultipartFormDataStreamProvider,以便在保存到文件系统之前对上载进行加密?
我需要上传我的项目中的文件。我正在使用asp.net webapi来实现这个目的。我想在上传文件保存到文件系统之前对其进行加密。同样,我希望在将其发送回客户端之前对其进行解密。 我尝试在MultipartFormDataStreamProvider的GetStream方法中获取流,但它不起作用。 公共重写流GetStream(HttpContent父级、HttpContentHeaders头) { var stream=base.GetStream(父级,头); Rijndael myRijndael=Rijndael.Create(); Stream msEncrypt=new MemoryStream(); //创建加密程序以执行流转换。 ICryptoTransform encryptor=myRijndael.CreateEncryptor(myRijndael.Key,myRijndael.IV); CryptoStream csEncrypt=新加密流(msEncrypt,encryptor,CryptoStreamMode.Write) 任何帮助都将不胜感激。 谢谢Encryption 是否可以覆盖MultipartFormDataStreamProvider,以便在保存到文件系统之前对上载进行加密?,encryption,asp.net-web-api,Encryption,Asp.net Web Api,我需要上传我的项目中的文件。我正在使用asp.net webapi来实现这个目的。我想在上传文件保存到文件系统之前对其进行加密。同样,我希望在将其发送回客户端之前对其进行解密。 我尝试在MultipartFormDataStreamProvider的GetStream方法中获取流,但它不起作用。 公共重写流GetStream(HttpContent父级、HttpContentHeaders头) { var stream=base.GetStream(父级,头); Rijndael myRijnd
卡鲁纳“不工作”这不是一个有用的诊断短语,尤其是当你希望我们远程调试你没有向我们展示的代码时。你能分享你的尝试吗?对不起,伙计们。我已经在MultipartformDataStreamProvider中重写了GetStream方法,如下所示:我修改了我的原始帖子,因为我无法在这里添加更多注释。
ContentDispositionHeaderValue contentDisposition = headers.ContentDisposition;
if (contentDisposition != null)
{
if (!string.IsNullOrEmpty(contentDisposition.FileName))
{
try
{
byte[] bytearrayinput = new byte[stream.Length - 1];
csEncrypt.Write(bytearrayinput, 0, bytearrayinput.Length);
encrypted = msEncrypt;
msEncrypt.Seek(0, SeekOrigin.Begin);
return msEncrypt;
}
catch (Exception)
throw;
}
finally
{
myRijndael.Dispose();
msEncrypt.Close();
}
}
}
return new MemoryStream();
}