C# 使用HTML文件上载控制上载文件-访问被拒绝
单击“我的导入”按钮将执行以下JQuery代码:C# 使用HTML文件上载控制上载文件-访问被拒绝,c#,jquery,asp.net,iis-7.5,C#,Jquery,Asp.net,Iis 7.5,单击“我的导入”按钮将执行以下JQuery代码: if ($("#fileUpload").val()) { $.ajax({ async: false, url: "Handler/Handler.ashx?op=Import", data: JSON.stringify(myData), type: 'POST',
if ($("#fileUpload").val()) {
$.ajax({
async: false,
url: "Handler/Handler.ashx?op=Import",
data: JSON.stringify(myData),
type: 'POST',
contentType: 'application/json; charset=utf-8'
});
myData
是一个JSON对象,包含文件路径和一些其他HTML元素值
当达成此声明时
using (var fs = new FileStream(filepath, FileMode.Open, FileAccess.ReadWrite))
…这是飞行的例外:
UnauthorizedAccessException - Access to the path XXX is denied.
我可以通过向IUSER授予完全控制权限来解决此问题。但是,这不是一个选项,因为我们的最终用户不能期望每次上传文件时都修改权限。是否有其他不涉及任何最终用户输入的方法?如果我理解正确,您可以在使用前动态授予权限
private bool GrantAccess(string filepath)
{
FileInfo fInfo = new FileInfo(filepath);
FileSecurity fSecurity = fInfo.GetAccessControl();
fSecurity.AddAccessRule(new FileSystemAccessRule("IUSER",
FileSystemRights.FullControl,
AccessControlType.Allow));
fInfo.SetAccessControl(fSecurity);
return true;
}
使用block之后
private bool RemoveAccess(string filepath)
{
FileInfo fInfo = new FileInfo(filepath);
FileSecurity fSecurity = fInfo.GetAccessControl();
fSecurity.AddAccessRule(
new FileSystemAccessRule("IUSER",
FileSystemRights.FullControl,
AccessControlType.Deny));
fInfo.SetAccessControl(fSecurity);
return true;
}
希望能有帮助
不要忘记使用System.IO包含代码>