Как я могу связать пользователей с их соответствующими папками в ASP.NET?

StackOverflow https://stackoverflow.com/questions/125473

Вопрос

Когда пользователь загружает файл, его файлы будут загружены в FolderA, когда UserB, в folderbи так далее.Роли/ Профили в ASP.NET.Папки будут уже существующими.Кто-нибудь?

Это было полезно?

Решение

Вероятно, вы захотите закодировать это вручную.В ASP.NET нет ничего встроенного для управления пользовательскими файлами.Однако код для этого должен быть относительно простым.Предполагая, что имя пользователя уникально и никогда не меняется, вы можете объединить имя пользователя с путем (используйте Path.Объединить) и загрузить в это местоположение.Я бы также заблокировал это местоположение, чтобы никто другой не мог получить к нему доступ.

Другие советы

Способ, которым я делал это в прошлом, - использовать базовую папку загрузки (скажем, uploads) и в этой папке создать папку, используя идентификатор пользователя из базы данных.Таким образом, структура была бы такой..\загружает \ 145 для пользователя с идентификатором пользователя 145.

Первое, что делает мой код, это проверяет, существует ли папка, и если нет, то вызывает каталог.Create() (или любой другой синтаксис) для создания папки перед загрузкой.

Дополнительная информация, которая может оказаться вам полезной:Я также переименовываю файл, используя GUID, который позволяет избежать конфликтов имен, если они загружают 2 файла с одинаковым именем.Недостатком является то, что обычно вам необходимо поддерживать таблицу с исходным именем файла и физическим именем файла (GUID).

Вы можете просто проверить наличие папки и создать ее для пользователя, если она не существует, но это имеет последствия для безопасности.Возможно, вы также захотите попробовать сохранить данные в базе данных и привязать их к пользователю..я думаю, это зависит от того, что вы разрешаете пользователям загружать.

Есть несколько способов, которыми вы можете это сделать:

Использование Форм Аутентификации

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

Использование проверки подлинности Windows

Если вы используете проверку подлинности Windows (например, ActiveDirectory), вы можете предоставить пользователю доступ как к физическому местоположению папки, так и через веб-приложение.

P.S.- Рад видеть тебя здесь, Марлон!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top