Выключить/включить доступ к файлу с документами

Я создаю веб-сайт ASP.NET C #, один из файлов содержит файлы Word Docs и PDF, к которым я хочу заблокировать доступ, если они не знают пароль. Я попробовал класс FileIOPermission, используя полный путь и относительный путь, но безуспешно.

FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.NoAccess, @"resources");
f2.AddPathList(FileIOPermissionAccess.NoAccess | FileIOPermissionAccess.NoAccess, @"resources");
try
{
    f2.Demand();
}
catch (SecurityException s)
{
    //Console.WriteLine(s.Message);
}

Response.Redirect(@"resources/20019_05_05_DOCS.zip"); 

Я тестирую код, ожидая отказа в доступе, но я все еще могу получить доступ к файлам в папке ресурсов. Спасибо.


person Basil Cabrera    schedule 04.07.2019    source источник
comment
Это дубликат этого предыдущего вопроса здесь? stackoverflow.com/q/26968328/125981 или этот stackoverflow.com/q/6822173/125981 Или даже этот stackoverflow.com/q/ 528858/125981 Итак, возможно, вам просто нужно поместить файл в нужную папку?   -  person Mark Schultheiss    schedule 04.07.2019
comment
Спасибо за ссылки, однако я не хочу, чтобы файлы были постоянно скрыты. Я хочу, чтобы файлы по умолчанию были скрыты, предоставили пароль для доступа, а затем снова скрыли их.   -  person Basil Cabrera    schedule 05.07.2019
comment
Похоже, вам нужен фильтр авторизации - «Авторизация (предотвращение доступа к ресурсам, на которые пользователь не авторизован)» в сочетании с фильтром ресурсов, который запускается после этого... вот обзор docs.microsoft.com/en-us/aspnet/core/mvc /контроллеры/   -  person Mark Schultheiss    schedule 05.07.2019


Ответы (1)


вот как я решил эту проблему.

Скройте свои файлы в App_Data.
Если пароль пользователя правильный,
получить файл, используя byteArray = System.IO.File.ReadAllBytes(filepath)
Предоставьте документ, используя return new FileContentResult(byteArray, MimeType);

конец

person Basil Cabrera    schedule 27.07.2019