powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создание расшаренной папки
18 сообщений из 18, страница 1 из 1
Создание расшаренной папки
    #38378922
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени.
Создаю расшаренную папку следующим образом:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
string folderPath = @"C:\folder";
DirectoryInfo folder = new DirectoryInfo(folderPath);
folder.Create();

ManagementClass managementClass = new ManagementClass("Win32_Share");
ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");

inParams["Description"] = "Shared folder description";
inParams["Name"] = "Shared Folder";
inParams["Path"] = folderPath;
inParams["Type"] = 0x0;
inParams["Password"] = null;
inParams["Access"] = 1179817; // Только чтение.

managementClass.InvokeMethod("Create", inParams, null);


Все отлично создается, но в Share Premissions висит группа Everyone .
ОС: Windows 7 . Погугив понял, что это вроде как такая особенность у 7ки и Висты.
Как создать расшаренную папку, чтобы в Share Premissions был только, тот пользователь, для которого я ее создаю?
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38378950
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОС: Windows 7 . Погугив понял, что это вроде как такая особенность у 7ки и Висты.
Сейчас попробовал в ХР - и там так же :(
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379028
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://forums.asp.net/t/1523511.aspx
Вот как раз, что мне нужно, но решения там нет(
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379031
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Создаем папку с очищенными рулами и добавляем конкретный рул: http://codearticles.ru/articles/2400
2. Шарим папку вот таким способом: http://codearticles.ru/articles/1018

В результате, начальные рулы отнаследуются в шареные рулы. Профит.
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379038
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё вместе:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
var directory = new DirectoryInfo(Directory.CreateDirectory(@"C:\folder").FullName);
var directorySecurity = directory.GetAccessControl();
directorySecurity.SetAccessRuleProtection(true, false);
directory.SetAccessControl(directorySecurity);

var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
var security = directory.GetAccessControl();
var rule = new FileSystemAccessRule(sid,
    FileSystemRights.Read,
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
    PropagationFlags.None,
    AccessControlType.Allow);
security.AddAccessRule(rule);
directory.SetAccessControl(security);

using (ManagementClass managementClass = new ManagementClass("Win32_Share"))
using (ManagementBaseObject inParams = managementClass.GetMethodParameters("Create"))
{
    inParams["Description"] = "My Files Share";
    inParams["Name"] = "My Files Share";
    inParams["Path"] = @"C:\folder";
    inParams["Type"] = 0x0; 
    using (ManagementBaseObject outParams = managementClass.InvokeMethod("Create", inParams, null))
    {
        if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
        {
            throw new Exception("Unable to share directory.");
        }
    }
}
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379062
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, все-ничего), но все равно не то выходит( Поменял sid на нужный мне - все равно Everyone висит в Share permissions , а это означает, что эту папку будут видеть все, хотя и не будут иметь к ней доступ.
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379063
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужен конкретный пользователь:

Код: c#
1.
2.
var rule = new FileSystemAccessRule(@"domain\username", FileSystemRights.Read, 
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);



и он отлично отмапится на шаринговых юзеров. Главное перед этим подчистить рулы.
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379071
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никаких Everyone нет, ты что? Во вкладке "Безопасность" только domain\username. Во вкладке "Общий доступ" только domain\username и группа Администраторы.

P.S. Попробуй код из студии выполнять из под админа (чисто теоретически).
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379091
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, код из-под админа. Смотри, что выходит
Security
Permissions
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379099
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВо вкладке "Безопасность" только domain\username.Все так, а вот
МСУВо вкладке "Общий доступ" только domain\username и группа Администраторы.Everyone и все тут(
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379101
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZickМСУ, код из-под админа. Смотри, что выходит
Security
Permissions

А ниафига ты лезешь в "Advanced Shared"? Нужно ходить в "Share...", там будет вся инфа по рулам.
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379104
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз весь код на всякий случай:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "Shared");

            var directory = new DirectoryInfo(Directory.CreateDirectory(folderPath).FullName);
            var directorySecurity = directory.GetAccessControl();
            directorySecurity.SetAccessRuleProtection(true, false);
            directory.SetAccessControl(directorySecurity);

            var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
            var security = directory.GetAccessControl();
            var rule = new FileSystemAccessRule(@"<domain/username>", FileSystemRights.Read, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
            security.AddAccessRule(rule);
            directory.SetAccessControl(security);

            using (ManagementClass managementClass = new ManagementClass("Win32_Share"))
            using (ManagementBaseObject inParams = managementClass.GetMethodParameters("Create"))
            {
                inParams["Description"] = "My Files Share";
                inParams["Name"] = "My Files Share";
                inParams["Path"] = folderPath;
                inParams["Type"] = 0x0;
                using (ManagementBaseObject outParams = managementClass.InvokeMethod("Create", inParams, null))
                {
                    if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
                    {
                        throw new Exception("Unable to share directory.");
                    }
                }
            }

...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379108
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУZickМСУ, код из-под админа. Смотри, что выходит
Security
Permissions

А ниафига ты лезешь в "Advanced Shared"? Нужно ходить в "Share...", там будет вся инфа по рулам.За тем, что если в Advanced share руками убрать Everyone и добавить нужного мне, то в сети только он будет видеть эту папку, а это как раз то, что мне не нужно.
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379114
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, блин, все мозг отключается)) Все отлично работает, спасибо

------------------------------ ТЕМА ЗАКРЫТА ------------------------------
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379125
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, рано обрадовался. Все равно другие пользователи эту папку видят
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379497
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZickМСУ, рано обрадовался. Все равно другие пользователи эту папку видят
Видят, но не имеют доступ. Пусть видят, тебе-то что.
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379644
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zick,

... просто так сделать невидимой расшаренную папку у вас не получится ... либо добавляйте к названию папки дензнак ($) - но тогда и приближенные к императору увидят ее только по прямой ссылке, либо создайте рашаренную папку "Для служ. польз." (ее будут видеть все, но зайти смогут только допущенные), а у же в ней создавайте подпапки и разруливайте доступ ...
...
Рейтинг: 0 / 0
Создание расшаренной папки
    #38379738
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zick, вообщем, сделал я тебе твою хотелку для Advanced Shared. Кури: http://codearticles.ru/articles/2401
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создание расшаренной папки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]