C# 如何使用MVC以最少的访问权限在服务器上记录文件

C# 如何使用MVC以最少的访问权限在服务器上记录文件,c#,asp.net-mvc,http-post,httppostedfile,C#,Asp.net Mvc,Http Post,Httppostedfile,如何使用MVC以最少的访问权限在服务器上记录文件。下一版本的代码不适合,因为它将阻塞域 控制器代码: var fileFile = Request.Files["p" + prop.Id]; if (fileFile == null) continue; string pathFile = AppDomain.CurrentDomain.BaseDirectory + "UploadedFiles"; string filenameFile = Path.GetFileName(fileFil

如何使用MVC以最少的访问权限在服务器上记录文件。下一版本的代码不适合,因为它将阻塞域

控制器代码:

var fileFile = Request.Files["p" + prop.Id];
if (fileFile == null) continue;

string pathFile = AppDomain.CurrentDomain.BaseDirectory + "UploadedFiles";
string filenameFile = Path.GetFileName(fileFile.FileName);

if (filenameFile != null) fileFile.SaveAs(Path.Combine(pathFile, filenameFile));
(如果可以通过将文件放入缓存来实现这一点)

编辑代码:

var ordinaryPropertyValue=new Catalog.Core.Entities.ordinaryPropertyValue()

Environment.CurrentDirectory=Environment.GetEnvironmentVariable(“TEMP”)

var fileFile=Request.Files[“File”+prop.Id]; 如果(fileFile==null)继续

字符串pathFile=Environment.CurrentDirectory

fileFile.SaveAs(路径文件)

ordinaryPropertyValue.Value=pathFile


SetPropertyValue(prop.Id,ordinaryPropertyValue)

您可以使用通用的应用程序数据位置(如果您需要%TEMP%留下来,这会比%TEMP%好-根据我的经验,人们经常会清理%TEMP%文件夹)-所有用户都应该可以访问该位置,然后您可以将其放在子文件夹中,如下所示:

var appDataFolder = System.Environment.GetFolderPath(SpecialFolder.CommonApplicationData);
var dir = Path.Combine(Path.Combine(appDataFolder, "My Application"), "UploadedFiles"):

// save your files into dir

以下是所有“特殊文件夹”,以防您看到一个您更愿意使用的文件夹:

什么是“最小访问权限”?我们在这里谈论的是安全性吗?而是使用
stringpathfile=Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“UploadedFiles”)是的,最小访问权限意味着安全性,但这不是解决问题的方法您可以将它们存储在临时目录中。每个用户(包括ASPNET)都应该有权访问此文件,我认为不需要分配任何权限。字符串tempDir=System.IO.Path.GetTempPath();