如何解决应用程序外外部用户的文件上传问题 - ASP.NET MVC 模拟
我有一个要求,我想在其中创建调查表,并且用户可以选择上传文件。该网站是一个 ASP.NET MVC 应用程序。
这些用户只能访问调查表单,而无权访问应用程序中的任何其他页面。要上传到位于应用托管的同一服务器中的共享文件夹的文件。
文件夹的访问权限仅适用于特定的 AD 组。上传文件的外部用户不属于该 AD 组。
[HttpPost]
public JsonResult Upload()
{
string fileUniqueName = string.Empty;
try
{
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase file = Request.Files[i];
string fileName = file.FileName;
fileUniqueName = string.Format("{0}_{1}_{2}",Path.GetFileNameWithoutExtension(file.FileName),DateTime.Now.ToString("yyyyMMdd_HHmmss_FFF"),Path.GetExtension(file.FileName));
string tempFileUploadFolderPath = ConfigurationManager.AppSettings["TempFolderPath"];
Directory.CreateDirectory(tempFileUploadFolderPath);
string fileFullpath = Path.Combine(tempFileUploadFolderPath,fileUniqueName);
file.SaveAs(fileFullpath);
}
}
catch(Exception)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return new JsonResult
{
Data = ""
};
}
return new JsonResult
{
Data = fileUniqueName
};
}
我在 web.config 中有以下设置
<authentication mode="Windows" />
<identity impersonate="true" />
有人可以指导如何在这种情况下执行文件上传功能吗?我们可以通过模拟做任何事情吗?
解决方法
是的,可以做到。
只需将应用程序池的身份设置为 AD 组中的用户之一,以便应用程序有权将调查存储在共享文件夹中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。