Как я могу предоставить разрешения для FTP-папки пользователям активного каталога - PullRequest
1 голос
/ 13 мая 2009

У меня есть веб-приложение asp.net, которое создает папку на FTP-сайте, но мне нужно предоставить разрешения на эту папку некоторым пользователям активного каталога.

Как я могу сделать это программно, внутри моего приложения, когда я создаю папку?

Ответы [ 3 ]

1 голос
/ 15 мая 2009

Вы не говорите, какой FTP-сервер вы используете или каким образом вы хотите, чтобы пользователь AD взаимодействовал с новой папкой. Я предполагаю, что вы используете службу IIS FTP и что вам необходимо, чтобы пользователи AD могли использовать FTP для доступа к новой папке.

IIS использует те же права доступа, что и другие методы доступа к файлам в Windows (доступ осуществляется на вкладке «Безопасность» в представлении «Свойства» папки).

Я создал WinForm, которая будет выполнять следующие действия: создавать новую учетную запись локального пользователя (и добавлять их в группу), создавать новый каталог в базовом каталоге нашего сервера FTP, создавать новую виртуальную папку FTP (чтобы пользователь мог может сопоставить соединение с этой папкой) и, наконец, дать новому пользователю полный контроль над новым каталогом (и поскольку каталог был виртуальной папкой, новый пользователь имеет полный контроль через FTP).

Похоже, вам не нужно создавать нового пользователя, вам просто нужно дать ему разрешение вносить изменения в новый каталог. В моем приложении я запускаю командный файл и передаю ему несколько параметров.

Команда для изменения прав доступа к каталогу (или файлу):

cacls [The path to your new directory] /E /P [The AD user name]:C

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

Чтобы выполнить это из VB.Net:

Shell(System.Configuration.ConfigurationSettings.AppSettings.Item("CACLS_batPath") & " " & strFolderPath & " " & _strUserName, AppWinStyle.NormalFocus, True, -1)

Это откроет видимое командное окно и выполнит командный файл, передав ему параметры. (Мне просто пришло в голову, что я делаю это в WinForms и, возможно, не так просто позвонить из ASP.Net, проверьте здесь информацию о выполнении командного файла из ASP.Net: http://codebetter.com/blogs/brendan.tompkins/archive/2004/05/13/13484.aspx)

Содержимое файла BAT:

echo "update file permissions"
cacls %1 /E /P %2:C
REM PAUSE

Удачи!

1 голос
/ 05 ноября 2009

Я предполагаю, что вы создаете папку и хотите установить разрешения в приложении c #.

Вы хотите посмотреть на класс DirectorySecurity ( msdn )

Вы создаете класс directorySecurity для вновь созданного каталога, а затем добавляете FileSystemAccessRules для определения соответствующего доступа на основе пользователей и групп AD.

1 голос
/ 15 мая 2009

Стандартный FTP не позволяет изменять разрешения или владельца файла, но для FTP-серверов достаточно распространено разрешать подобные вещи с помощью пользовательских команд SITE. По крайней мере, это обычное явление для FTP-серверов под управлением UNIX.

Попробуйте подключиться к серверу со стандартным FTP-клиентом и наберите site help. Это должно дать вам список доступных пользовательских команд SITE. Затем вы можете получить использование для конкретной команды, набрав site help <cmd>.

Я не уверен, какие ваши варианты будут в отношении сервера на базе Windows, поскольку модель разрешений более детализирована, чем со стандартными разрешениями UNIX. На сервере UNIX вы часто можете изменить владельца группы и разрешения, но изменение владельца файла не допускается, если вы не являетесь пользователем root. Я не должен был говорить, что вход на FTP-сервер с правами root является действительно плохой идеей.

Надеюсь, это поможет.

R

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...