Как я могу связать пользователей с их соответствующими папками в ASP.NET?
-
02-07-2019 - |
Вопрос
Когда пользователь загружает файл, его файлы будут загружены в FolderA, когда UserB, в folderbи так далее.Роли/ Профили в ASP.NET.Папки будут уже существующими.Кто-нибудь?
Решение
Вероятно, вы захотите закодировать это вручную.В ASP.NET нет ничего встроенного для управления пользовательскими файлами.Однако код для этого должен быть относительно простым.Предполагая, что имя пользователя уникально и никогда не меняется, вы можете объединить имя пользователя с путем (используйте Path.Объединить) и загрузить в это местоположение.Я бы также заблокировал это местоположение, чтобы никто другой не мог получить к нему доступ.
Другие советы
Способ, которым я делал это в прошлом, - использовать базовую папку загрузки (скажем, uploads) и в этой папке создать папку, используя идентификатор пользователя из базы данных.Таким образом, структура была бы такой..\загружает \ 145 для пользователя с идентификатором пользователя 145.
Первое, что делает мой код, это проверяет, существует ли папка, и если нет, то вызывает каталог.Create() (или любой другой синтаксис) для создания папки перед загрузкой.
Дополнительная информация, которая может оказаться вам полезной:Я также переименовываю файл, используя GUID, который позволяет избежать конфликтов имен, если они загружают 2 файла с одинаковым именем.Недостатком является то, что обычно вам необходимо поддерживать таблицу с исходным именем файла и физическим именем файла (GUID).
Вы можете просто проверить наличие папки и создать ее для пользователя, если она не существует, но это имеет последствия для безопасности.Возможно, вы также захотите попробовать сохранить данные в базе данных и привязать их к пользователю..я думаю, это зависит от того, что вы разрешаете пользователям загружать.
Есть несколько способов, которыми вы можете это сделать:
Использование Форм Аутентификации
Если вы используете проверку подлинности в формах, вы можете установить соглашение, в соответствии с которым имя пользователя или идентификатор пользователя могут служить основой для пути на вашем сервере, по которому пользователь может загрузить файл.Обратите внимание, что у вашего пользователя не будет прямого доступа к этой папке:пользователь также должен иметь возможность загружать файлы с вашего сервера через ваше веб-приложение.
Использование проверки подлинности Windows
Если вы используете проверку подлинности Windows (например, ActiveDirectory), вы можете предоставить пользователю доступ как к физическому местоположению папки, так и через веб-приложение.
P.S.- Рад видеть тебя здесь, Марлон!