ASP. NET Core API stati c авторизация файлов - PullRequest
0 голосов
/ 28 апреля 2020

Я не уверен, что об этом снова спросили, но в документах я видел, как включить stati c авторизацию файлов для MVC проектов.

Я строю сайт Blazor WASM As pNet, который будет действовать как веб-сайт галереи изображений, где люди смогут загружать изображения.

Требуется добавить авторизацию, чтобы пользователь мог видеть только те изображения, которые ему принадлежат. Это уже реализовано, но проблема в том, что загруженные изображения сохраняются как файлы * stati c на внутреннем сервере под wwwroot и по умолчанию доступны publi c.

Я пытался использовать другой подход для загрузки изображений как byte[] непосредственно в MSSQL, но я не думаю, что это хорошая идея для хранения изображений в БД.

Я также пытался читать байты из стати c файлов в API и возвращение их в виде base64 зашифрованных строк клиенту, но это также не очень хороший подход для больших изображений.

Единственный подход, который я считаю нужным, - сохранить изображения как данные. c файлов на бэкэнде, сохраните ссылки на них в базе данных и каким-то образом предоставьте файлы для авторизованных пользователей?

Возможно ли это?

1 Ответ

0 голосов
/ 29 апреля 2020

Вам нужно будет обслуживать файлы из действия контроллера вместо stati c файлов, тогда вы можете использовать атрибут [Authorize], как вы обычно делаете. Не сохраняйте изображения в папке wwwroot.

public IActionResult DisplayImage() => new FileStreamResult(new FileStream(pathToImage, FileMode.Open, FileAccess.Read), "image/png");
...