Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Доброго времени суток.

В .Net Framework работа с ACL каталогов и файлов у меня не вызывает проблем. Сейчас работать с ACL потребовалось в проекте, использующем .NET Core 2. Для этого подключил пакет System.IO.FileSystem.AccessControl. На сайте Майкрософт вижу некоторую документацию по теме, но без примеров кода.

JetBrains Rider для класса FileSecurity показывает следующий исходный код:

// Decompiled with JetBrains decompiler
// Type: System.Security.AccessControl.FileSecurity
// Assembly: System.IO.FileSystem.AccessControl, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// MVID: 95551778-530B-4B9F-8EB6-1D54F85B3C4B
// Assembly location: /usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.5/System.IO.FileSystem.AccessControl.dll

namespace System.Security.AccessControl
{
  [SecurityCritical]
  public sealed class FileSecurity : FileSystemSecurity
  {
    public FileSecurity()
    {
      throw new PlatformNotSupportedException(SR.PlatformNotSupported_AccessControl);
    }

    public FileSecurity(string fileName, AccessControlSections includeSections)
    {
      throw new PlatformNotSupportedException(SR.PlatformNotSupported_AccessControl);
    }
  }
}


Такой расклад не внушает оптимизма...

Можно ли вообще в .NET Core 2 каким-то образом работать с ACL каталогов и файлов?

Если "да", то как получить FileSecurity интересующего меня файла (и какой пакет для этого использовать, если обозначенный выше содержит лишь заглушки)? В .NET Framework для этого используется метод File.GetAccessControl(true,true,typeof(NTAccount)), но в .NET Core 2 не вижу его.

Если "да", то как применить настройки прав доступа для интересующего меня файла? В .NET Framework для этого используется метод File.SetAccessRule(security), но в .NET Core 2 не вижу его.

С уважением,
Андрей
23 апр 18, 11:33    [21360079]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
hVostt
Member

Откуда:
Сообщений: 14575
Compositum,

.NET Core абстрагируется от ОС. А .NET Framework реализует доступ к функциям винды. Вы чего хотите? Винду? Так используйте классический .NET Framework.
23 апр 18, 11:40    [21360096]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
hVostt
Вы чего хотите? Винду? Так используйте классический .NET Framework.

В качестве платформы была выбрана ASP.NET Core MVC 2 и код уже написан.

Я никогда не работал с классическим ASP.NET Web Forms, но изучать стал сразу ASP.NET Core MVC 2, поскольку в своей книге Pro ASP.NET Core MVC 2, 7th Edition Адам Фримэн пишет, что ASP.NET Core MVC 2 - это очередной этап развития ASP.NET и является полным пересмотром этой платформы Майкрософтом, с полным переписыванием её с нуля (по разным, указанным автором причинам).

Насколько я знаю, с ACL на сегодняшний день уже можно работать и в Linux, поэтому ожидал, что .NET Core 2 будет поддерживать такую возможность.
23 апр 18, 11:56    [21360139]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18992
Compositum
ASP.NET Web Forms
WebForms тут вообще не причем. Вместо ASP.NET Core MVC нужно использовать ASP.NET MVC, если нужен именно Windows
23 апр 18, 12:00    [21360158]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34443
Compositum,
Есть еще веб проекты и десктоп.
Я много где читал что Core будет реализован в первую очередь для веб проектов.
Плюс сейчас все очень сырое.
Поэтому уточняйте свои цели и вопросы.
23 апр 18, 12:04    [21360183]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Shocker.Pro
WebForms тут вообще не причем. Вместо ASP.NET Core MVC нужно использовать ASP.NET MVC, если нужен именно Windows

Благодарю за информацию. Совместим ли ASP.NET MVC с ASP.NET Core MVC 2 на уровне исходного кода файлов проекта? Т.е. если я создам новый проект ASP.NET MVC и скопирую в него свои исходники, то будет ли он компилироваться?
23 апр 18, 12:10    [21360203]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18992
Compositum
Благодарю за информацию. Совместим ли ASP.NET MVC с ASP.NET Core MVC 2 на уровне исходного кода файлов проекта? Т.е. если я создам новый проект ASP.NET MVC и скопирую в него свои исходники, то будет ли он компилироваться?
Нюансы есть, но в целом, если не используются всякие извращения - должно работать. Скорее всего придется поработать над стартовой частью.
23 апр 18, 12:13    [21360219]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Petro123
Я много где читал что Core будет реализован в первую очередь для веб проектов.
Плюс сейчас все очень сырое.
Поэтому уточняйте свои цели и вопросы.

Я ведь указал и то и другое.
23 апр 18, 12:16    [21360227]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Я предполагал, что если .NET Core 2 присутствуют те же классы, предназначенные для работы с ACL, что имеются в .NEt Framework, то ими можно как-то пользоваться.
23 апр 18, 12:17    [21360234]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Shocker.Pro
Нюансы есть, но в целом, если не используются всякие извращения - должно работать. Скорее всего придется поработать над стартовой частью.

Спасибо, попробую.
23 апр 18, 12:18    [21360241]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34443
Compositum
Petro123
Я много где читал что Core будет реализован в первую очередь для веб проектов.
Плюс сейчас все очень сырое.
Поэтому уточняйте свои цели и вопросы.

Я ведь указал и то и другое.

Мысль была что платформа Core очень сырая для продакшен больших проектов.
Как ваше мнение?
23 апр 18, 12:20    [21360256]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Petro123
Мысль была что платформа Core очень сырая для продакшен больших проектов.
Как ваше мнение?

Я пока не настолько хорошо знаком с .NET Core 2. :) Да, платформа пока не настолько развита, как классическая, но Майкрософт оперативно работает над этим. У меня сейчас и проект-то небольшой, вот и тренируюсь, что называется "на кошках".

Работа с ACL изначально не планировалась, но в ходе тестирования выяснилось, что она нужна, иначе некоторые файлы в подкаталогах, появляющиеся в процессе эксплуатации web-приложения могут оказаться недоступными для чтения (отсутствуют необходимые права на чтение). Эти подкаталоги создаются сторонним приложением. Если затем вручную на подкаталог дать права на чтение для всех юзеров), то проблема чтения его файлов исчезает. Но хотелось бы делать это не вручную.

Не в последнюю очередь .NET Core MVC 2 интересен мне тем, что позволяет хостить web-приложения не только в IIS, но и в NGINX на Linux.
23 апр 18, 12:41    [21360329]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34443
Compositum
в ходе тестирования выяснилось, что она нужна, иначе некоторые файлы в подкаталогах, появляющиеся в процессе эксплуатации web-приложения могут оказаться недоступными для чтения (отсутствуют необходимые права на чтение). Эти подкаталоги создаются сторонним приложением

Интересно.
У меня в линуксе веб сервер пишет и читает со своими правами веб сервера.
Конечно, если у вас внешнее приложение влезет в домен веб приложения то могут быть проблемы.
Может в этом дело?
Что стороннее приложение некорректно работает в папках веб сервера?
23 апр 18, 12:48    [21360371]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Читаю на сайте Майкрософт рекомендации по выбору платформы (ASP.NET vs ASP.NET Core). Насколько я вижу, в ASP.NET нет Razor Pages, который я использую в своём проекте, т.о. копированием файлов исходного кода, при попытке перенести всё на ASP.NET будет не обойтись, потому пытаться не буду.
23 апр 18, 12:53    [21360397]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34443
Compositum,
Вместо того стороннего приложения делаете веб приложение на этом же веб сервере.
Тогда правами занимается веб сервер и вашей проблемы не должно быть.
IMHO.
23 апр 18, 12:59    [21360431]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Petro123
Конечно, если у вас внешнее приложение влезет в домен веб приложения то могут быть проблемы.
Может в этом дело?
Что стороннее приложение некорректно работает в папках веб сервера?

Там у подкаталога, находящегося в каталоге моего web-приложения и создаваемого сторонним внешним приложением, по умолчанию отсутствуют какие-либо права для AllUsers, а нужны права для чтения. Вот я и хотел в коде web-приложения исправлять это, в случае необходимости. А так придётся отдавать это на откуп внешнего приложения, создающего такой подкаталог.
23 апр 18, 13:00    [21360432]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Petro123
Вместо того стороннего приложения делаете веб приложение на этом же веб сервере.
Тогда правами занимается веб сервер и вашей проблемы не должно быть.

Это сторонняя расчётная софтина на C++, разрабатываемая не мною. :)
23 апр 18, 13:01    [21360439]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 34443
Compositum
Petro123
Вместо того стороннего приложения делаете веб приложение на этом же веб сервере.
Тогда правами занимается веб сервер и вашей проблемы не должно быть.

Это сторонняя расчётная софтина на C++, разрабатываемая не мною. :)
))))
23 апр 18, 13:03    [21360450]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18992
Compositum
Читаю на сайте Майкрософт рекомендации по выбору платформы (ASP.NET vs ASP.NET Core). Насколько я вижу, в ASP.NET нет Razor Pages, который я использую в своём проекте
Там всего лишь написано, что это рекомендуемая технология, и означает лишь то, что в Core нет многого из того, что перечислено для традиционного ASP.NET

Так что RAZOR там есть, не переживайте )
23 апр 18, 13:11    [21360488]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 2862
перед тем как писать на каком то фреймворке или технологии стоит убедиться, что все её возможности позволяют реализовать задуманное. но думаю даже в CORE этот вопрос решаем, без чрезмерного труда.
23 апр 18, 13:15    [21360502]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
hVostt
Member

Откуда:
Сообщений: 14575
Compositum
Я предполагал, что если .NET Core 2 присутствуют те же классы, предназначенные для работы с ACL, что имеются в .NEt Framework, то ими можно как-то пользоваться.


ASP.NET MVC Core 2 прекрасно работает на платформе .NET Framework
23 апр 18, 13:16    [21360505]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Petro123
))))

Пишет др. программист, в нашей компании. Он не силён в программировании на .NET и под WEB в целом.
23 апр 18, 13:20    [21360540]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
hVostt
ASP.NET MVC Core 2 прекрасно работает на платформе .NET Framework

Я не понял этой фразы. В настройках проекта нет возможности переключения целевой платформы с .NET Core на .NET Framework, если вы это имели в виду.
23 апр 18, 13:22    [21360553]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18992
Compositum
Я не понял этой фразы. В настройках проекта нет возможности переключения целевой платформы с .NET Core на .NET Framework, если вы это имели в виду.
можно выбрать при создании нового проекта
23 апр 18, 13:25    [21360570]     Ответить | Цитировать Сообщить модератору
 Re: Работа с ACL в .NET Core 2  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5900
Shocker.Pro
можно выбрать при создании нового проекта

Согласен. :) Спасибо, попробую.
23 апр 18, 13:32    [21360611]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / WinForms, .Net Framework Ответить