Глядя разрешить FORTIFY вывод (Path Manipulation) для разрешения открытия файла:Открыть FileStream для написания - подкрепиться Путь Манипуляция
public FileStream OpenFile(string directory, string filename)
{
FileStream fs = null;
string pathname = string.Empty;
pathname = Path.Combine(directory, filename);
fs = new FileStream(pathname , FileMode.OpenOrCreate);
return (fs);
}
Этот код работает в приложении .NET, но не написать виртуальный каталог.
Сопротивление/предложение Fortify указывает на то, что белый список действительных каталогов, но это равносильно жесткому кодированию каталогов в приложении. Это может быть безопасно, но это не хорошая практика программирования.
Заранее спасибо
Если вы пытаетесь написать в виртуальный каталог на сервере, вам нужно будет найти способ использования 'Server.MapPath' и использовать'/path/path/etc. .' используйте косые черты, указывающие на ваше местоположение , например, если вы хотите записать в папку документов, вы бы выполнили 'fs.Write (Server.MapPath (" ~/Documents/SomeData.txt "))' – MethodMan
также здесь 'pathname = Path.Combine (directory, filename);' вы можете сделать следующее: 'pathname = Path.Combine (каталог, Path.GetFileName (имя файла));' если вы только хотите вернуть FileName .. – MethodMan
Can вы проясните «но НЕ пишите в виртуальный каталог». Заметим? Что вы хотите сделать - напишите в определенном месте на диске * вне * root из вашего приложения или получите этот код для записи * только * внутри корня вашего приложения? –