C# 如何使用MVC以最少的访问权限在服务器上记录文件
如何使用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
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();