Мне нужно создать папку для хранения файлов внутри нее, в приложении .Net MVC3, но я думаю, что проблема общая для всех платформ ASP.Net.
Проблема в том, что я могу создать папку, но не могу записать файлы, потому что System.UnauthorizedAccessException
произошло.
Я также попытался дать дополнительное разрешение пользователю, который в данный момент запускает веб-приложение, но ничего не изменилось.
Это мой код:
if (!System.IO.Directory.Exists(fullPath))
{
System.IO.Directory.CreateDirectory(fullPath);
var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
var userName = user.Translate(typeof(System.Security.Principal.NTAccount));
var dirInfo = new System.IO.DirectoryInfo(fullPath);
var sec = dirInfo.GetAccessControl();
sec.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(userName,
System.Security.AccessControl.FileSystemRights.Modify,
System.Security.AccessControl.AccessControlType.Allow)
);
dirInfo.SetAccessControl(sec);
System.IO.Directory.CreateDirectory(fullPath);
}
string fullPathFileName = System.IO.Path.Combine(fullPath, fileName);
System.IO.File.WriteAllBytes(fullPath, viaggio.Depliant.RawFile);
Жаль, последняя строка кода всегда выдает System.UnauthorizedAccessException
.
Я не выдаю себя за пользователя в моем приложении, все работает под предопределенным пользователем.
Что я должен сделать, чтобы создать папку и убедиться, что приложение также может создавать файлы внутри нее?
Отредактировано:
Я также пытался сохранить файлы в специальной папке App_Data, но все еще получал ошибку System.UnauthorizedAccessException
. Кто-нибудь может сказать мне, почему это происходит?