Задать вопрос
  • Какими настройками разрешений запретить открытие файла?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    1. Назначить для User1 стандартное разрешение "Список содержимого папки"
    2. Убедиться, что нет менее ограничивающих разрешений для каждой из групп (и псевдо-групп, типа "Прошедшие проверку"), куда входит User1.

    PS По жизни разрешения лучше назначать не отдельным пользователям, а группам. Т.е., в данном случае - создать группу, куда входит только User1 и дать разрешения этой группе. Так будет проще что-нибудь поменять, когда потребуется: заменить User1 на другого пользователя и т.п. А по жизни поменять что-нибудь потребуется обязательно.
    Ответ написан
    3 комментария
  • Есть ли такая архитектура?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Есть несколько соображений.
    Сображение первое, глубоко теоретическое. Логическая структура конкретного приложения - это вопрос специфичный именно для приложения. Думать о ней в терминах соответствия некой теоретической "архитектуре" (тем более - "чистой архитектуре") - это самоограничение, достойное только зеленых новичков. Настоящие программисты не используют чистую архитектуру. Кароче, как вы приложение напишете, такая у него архитектура и будет. Возможно, если ваше приложение будет в чем-то замечательным, то эта архитектура войдет в учебники по этой самой архитектуре, в качестве примера (может - положительного, но, скорее, отрицательного ;-) ). Но пока что вам нужно решать практические вопросы, и шаблоны т.н. "архитектуры" могут служить только в качестве подсказки, а решать придется вам, из чисто практических соображений.

    Соображение второе, практическое. Раз, как вы пишете "Domain содержит только сущности, Enum'ы", то выбросьте из головы слово Domain, оно вас только запутывает. Потому что намекает на DDD, а то, что у вас есть, в DDD обзывают "анемичной моделью", и сильно не любят. Т.е. сейчас, с нынешней структурой приложения, DDD - оно не про вас.

    Так что, по факту, у вас есть два слоя абстракций, описывающих функции классов и методов: UI и Application. И я подозреваю, что логика приложения - классы и методы, отнесенные к Application - использует в качестве средства доступа к БД EF напрямую. То есть - что там прямо в коде используются сущности под названием DbContext и DbSet.

    А это означает, если по жизни, что от EF вы в таком раскладе никуда впоследствии не денетесь. Хорошо это или плохо - решать вам. Однако о намерении прибить гвоздями свое приложение к EF вы не упоминали и, предполагаю, не думали. Если это так, то задумайтесь именно об этом. Не о замене БД - EF может работать поверх разных БД, так что к MS SQL вы, по факту, с EF привязаны не будете (ну, разве что, сами того очень захотите).

    А задуматься надо: EF - штука неоднозначная. Она, подобно любому средству ORM, полна абстракций, которые, так скажем, не совсем хорошо ложатся на логическую структуру реляционных БД, а потому в них есть заметные дыры, через которые эта структура будет проглядывать. В частности, это нередко касается вопросов производительности.

    Но если вы выберети жизнь EF и ни с чем другим, то о Repository и UoW можете больше не думать: EF будет для вас и тем, и другим.

    Кароче, выбирайте.
    Ответ написан
    7 комментариев
  • В чем причина ошибки Ms exchange 2013?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Эта ошибка означает, что возникло исключение при обработке некого сообщения. Не исключено (но и не факт), что это произошло из-за вмешательства этой самой DLP системы.
    Сообщение вызывающее исключении при обработке, помещается в очередь Poison message queue. Смотрите там - если сообщение есть, конечно: например, ваша DLP могла его удалить внезапно для службы транспорта Exchange, тип исключения вполне такому сценарию соответствует. Если подозреваете DLP - сопоставьте ваш лог Exchange с логом DLP на момент возникновения исключения, чтобы понять, что делала в этот момент DLP.
    Ответ написан
    3 комментария
  • Как написать свой кастомный EditorFor и получить значение свойства модели?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    У вас в поле _helper класса FormHelper<TModel> конструктор сохраняет ссылку на интерфейс IHtmlHelper<TModel>.
    Этот интерфейс содержит свойство ViewData типа ViewDataDictionary<TModel>. А в этом типе реализовано свойство Model (типа TModel), которое даст вам ссылку на экземпляр класса (типа TModel) модели для представления/страницы.
    Ну, а дальше, раз вы знаете имя нужного вам свойства объекта и имеете ссылку на экземпляр этого объекта, то можете получить значение этого свойства: либо через составление с последующей компиляцией и вычисление выражения, возвращающего его значение, либо через отражение.
    Как-то так.
    Ответ написан
    1 комментарий
  • Как переименовать папку `archive` в `Archive`?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    А в чем сложность? В командной строке, в той папке где эта пака archive находится, выполните команду:ren archive Archive - и папка будет переименована.
    Ответ написан
    Комментировать
  • Как удалить сессию из БД после истечения срока?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В ASP.NET Core есть стандартный механизм сеансов (ISession): https://learn.microsoft.com/aspnet/core/fundamenta...
    Работает он на базе распределенного кэша (IDistributedCache), который штатными средствами можно базировать на MS SQL и на Redis (и, возможно, есть дополнительные сторонние пакеты для базирования на других СУБД,). Идентифкатор сессии хранится в куки (настраеваемой), по умолчанию - HTTP-only (но это настраивается).
    Механизм устаревания сеансов там есть, параметры тоже можно настроить.
    Кароче, если нет причин обязательно делать свой велосипед (типа, для учебной задачи) можно использовать этот стандартный механизм.
    Правда идея использовать этот механизм именно для авторизации у меня вызывает некоторые неясные опасения: он, вообще-то, не для того сделан. А именно для авторизации (плюс аутентифкация) в ASP.NET Core тоже есть штатное решение (Identity и политики авторизации). И вообще, аутентифкация/авторизация - это такое место, где легко накосячить, а потому лучше там обходиться без своих велосипедов.
    Ответ написан
    3 комментария
  • Как добавить в файловый сервер пользователей из домена?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    По вопросу имею сказать
    1. Домен почти наверняка чинится. Как чинить - зависит от того, как переносили контроллер, и как выглядит сейчас сломавшийся. Если будет информация (здесь в Вопроснице, лучше - другим вопросом) готов посодействовать.
    Самое простое - если переносили миграцией виртуалки и старая виртуалка на ESXI жива: запустить ее и перенсти по уму: поднять второй КД на новом месте (железо или другая виртуалка), убедиться что среплицировались и AD, и SYSVOL (готов подсказать в деталях, как именно) и штатно понизить исходный КД. Потом по желанию - переименовать новый в старый (некоторым это зачем-то надо).
    2. Если все совсем плохо то можно создать нужных локальных пользователей (и локальные группы) на файл-сервере, и позаменять старые SID в списках разрешений на SID этих пользователей (и групп) утилитой subinacl,exe. Примерная форма команды -
    subinacl /subdirectories "Z:\*.*" /replace=S-1-5-1-2-3-4-5=SERVER\user
    . Когда-то, когда ADMT ещё не было, это было практически штатным способом мигрировать файл-сервер в другой домен, была даже статья с описанием процедуры в MS Knowledge Base (к сожалению, не пережила инноваций). Однако в интернетах ещё можно нарыть кое-каких примеров
    Но вот соответствие пользователей и SID без живого КД посмотреть, увы, негде, придется применить творческий подход.
    Как-то так.

    PS Советы в каментах - жуть! Ну, кроме тех, которые от Роман Безруков, те - норм.
    PPS И ещё раз напоминаю - делайте бэкапы.
    Ответ написан
    7 комментариев
  • Как сообщить DNS серверу о смене айпи?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    ipconfig /registerdns
    Ответ написан
    2 комментария
  • Как обеспечивается уникальность IPv4 адресов?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Хосты источником информации о маршрутах IPv4 (и, в частности, об адресах, доступных через интерфейсы маршрутизатора) не являются в принципе. Вся информация о подключенных к маршрутизатору адесах и их диапазонах (подсетях) создается исключительно на маршрутизаторах и распространяется между ними по протоколам маршрутизации.
    Спуфинг IP отправителя возможен, но только в одну сторону, в исходящих пакетах - и то, если не настроена фильтрация на интерфейсе маршрутизатора,к которому подключен хост или нижестоящий маршрутизатор. Ответные пакеты, однако, такому отправителю не дойдут (по крайней мере, из-за пределов локальнного сегмента).
    Ответ написан
    Комментировать
  • Как найти и настроить процесс, который грузит систему под 100%?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Именно процессы - их надо смотреть на вкладке Подробности. Но вам это не поможет - у вас диск нагружает общий процесс служб - которых там много, сами видите.
    Можно попытаться понять, какая именно служба нагружает диск в Мониторе ресурсов. Он отображает конкретные файлы, к которым идет доступ (на вкладке Диск). Запустить его можно с вкладки Быстродействие Диспетчера задач.
    Ответ написан
    Комментировать
  • Причины сбоя проверки реплики при добавление контроллера win server 2012r2 на win server 2022?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Функциональных уровней в AD - два разных: домена и леса.
    Проверьте функциональный уровень леса (в AD Domains & Trusts, например). Если надо (а это почти 100%) - повысьте.
    Ответ написан
    Комментировать
  • Как правильно спроектировать бд?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Делайте связи в обратную сторону - добавьте в таблицы user, и game внешние ключи на promo. EntityId в таком случае просто не нужен (ну, или его можно сделать первичным ключом в promo).
    Ответ написан
    Комментировать
  • GPO разделение прав ПК и RDP?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Если делаете ограничение в политике на пользователей, которые ограничени не должны действовать на терминальном сервере, то в политике(ах) компьютера, действующей(их) на терминальный сервер следует включить настройку замыкания групповой политики в режиме замены, а все нужные настройки сделать в политике(ах) пользователей, применяемых к терминальному серверу - в режиме замыкания настройки берутсяя оттуда.
    Тогда не потребуется никакой фильтрации.
    Ответ написан
  • Почему ошибки 4004 и 4015 по DNS при настройке NAT на Windows Server 2012 R2?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вам нужно отключить регистрацию в DNS IP внешнего интерфейса. Как это сделать - см. инструкцию от Microsoft.
    Но если есть возможность убрать шлюз NAT с контроллера домена - а аппаратные маршрутизаторы SOHO-класса, которые могут работать таким шлюзом, сейчас очень недороги - лучше уберите: чем меньше дополнительных функций выполняет сервер контроллера домена - тем вам будет проще жить.
    Ответ написан
    Комментировать
  • Некоторые пользователи не наследуют делегированные права на OU в Active Directory?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Скорее всего, потому что они входят или когда-то входили в привилегированную группу:
    https://learn.microsoft.com/en-us/windows-server/i... (русский перевод там тоже есть, но он - с ошибками).
    Если учетная запись теперь ни в одну из привилегированных групп больше не входит - установите в 0 (через ADSIEdit.msc, например)значение ее атрибута AdminCount и включите наследование.
    Ответ написан
    Комментировать
  • Как повысить напряжение с микровольт до милливольт?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Например, поставить трансформатор ;-)
    Если считаете, что вам такой ответ не подходит - уточняйте условия задачи.
    Ответ написан
    1 комментарий
  • Настройка ДНС сервера в локальной сети?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    в локальной сети есть ДНС сервер на WINDOWS SERVER 19. Который сидит на IP X.X.X.2

    Самый простой вариант.
    Создайте на нем зону c именем WWW.DOMEN.RU и добавьте в нее единственную запись (типа A) с именем, совпдающим с именем зоны (@) и IP адресом IP X.X.X.3. Убедитесь, что на всех клиентах этот сервер DNS - единственный настроенный (особенно это необходимо, если в сети используется Acive Directory!). Фаервол не трогайте: от него требуется, чтобы он пропускал запросы DNS с Windows Server по протоколу DNS (53/udp, а лучше - и 53/tcp тоже) на любой адрес в интернете. Снаружи в зоне DNS ничего не трогайте - она при такой настройке на внутреннюю сеть не влияет.
    Ответ написан
    1 комментарий
  • Возникла ошибка в примерах от LLamaSharp?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Добавьте в начало файла строку using System.Linq;
    чтобы указать компилятору искать методы расшерения в этом пространстве имен.
    ToList() - это метод расширения для интерфейса IEnumerable<Matches>, который реализуется объектом, который возвращает метод Regex.Matches. Этот метод определен (как обобщеный, для IEnumerable<T>) в классе Enumerable из пространства имен System.Linq.
    PS Подозреваю, что у автора примера ссылка на это пространство имен живет в Global Usings, а потому у него все работает, а у вас - нет.
    Ответ написан
  • Почему связи в таблице работают неправильно?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Надо изменить поведение внешних ключей при удалении. Если, как я полагаю, вы рабоаете с EF Core, то для этого в OnModelCreating нужно вызвать метод OnDelete (информация, ссылка на документацию и примеры - здесь).
    В EF6 (для .NET Framework) вместо этого был метод WillCascadeOnDelete(false)
    Ответ написан
  • Как сделать отказоустойчивый IIS?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вот руководство от MS по одновременной настройке ARR+WNLB
    https://learn.microsoft.com/en-us/iis/extensions/c...
    Оба сервера ARR будут иметь одинаковый внешний IP, который надо прописать в DNS (или на шлюзе, если серверы стоят за ним). Браузер будет ходить по этому IP и попадать на ARR - на один из двух, если доступны оба, либо на работоспособный если другой откажет.
    Ответ написан
    Комментировать