Как я могу перебирать файлы и права на активный каталог с помощью c #? - PullRequest
0 голосов
/ 07 июня 2019

Я студент-программист, и мне нужно создать веб-приложение, позволяющее видеть все папки, подпапки и файлы и кто имеет к ним доступ ... Мне также нужно составить список групп и пользователей активной директории и выполнить итерацию по всемсервера, чтобы изменить их.Но я ac # noob, и я начал изучать asp.net 3 недели назад ... Я хотел бы знать, может ли кто-нибудь помочь мне, объяснив, как все слои MVC общаются между ними.Я уже кодировал некоторые функции, но я не знаю, как заставить их взаимодействовать ... Спасибо за вашу помощь!(Извините за мой плохой английский, я французский ... ^^ ')

1 Ответ

0 голосов
/ 07 июня 2019

То, что вы спрашиваете, действительно сложно для новичка. Поскольку вы начинаете и используете asp.net, я бы порекомендовал вам начать с ASP.NET Core , который представляет собой новый веб-фреймворк, построенный на основе .Net Core.

Существует множество ресурсов и курсов. Я бы порекомендовал вам получить подписку Pluralsight , есть много курсов, и они действительно хороши, почти все преподаватели являются MVP. Есть путь (вроде как карьера) для Сборка базовых приложений ASP.NET: .

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

Следующий код состоит из нескольких методов, которые я использовал для проверки пользователей с активным каталогом, а также получения списка всех компьютеров внутри каталога, но, как я уже сказал, сначала вам нужно понять основы, чтобы чтобы этот код правильно работал внутри вашего приложения

public bool ValidateWithActiveDirectory(string domainUrl, string userName, string password) {
    using (var context = new PrincipalContext(ContextType.Domain, domainUrl)) {
        UserPrincipal UserPrincipal1 = new UserPrincipal(context);
        PrincipalSearcher search = new PrincipalSearcher(UserPrincipal1);
        foreach (UserPrincipal result in search.FindAll()) {
        }
        if (context.ValidateCredentials(userName, password)) {
            return true;
        }
    }
    return false;
}

public IEnumerable<Computer> GetActiveDirectoryComputers(string domainUrl) {
    IList<Computer> computers = new List<Computer>();
    PrincipalContext context = new PrincipalContext(ContextType.Domain, domainUrl);
    ComputerPrincipal computerPrincipal = new ComputerPrincipal(context);
    PrincipalSearcher search = new PrincipalSearcher(computerPrincipal);
    foreach (ComputerPrincipal result in search.FindAll()) {
        computers.Add(new Computer(result.Name));
    }
    return computers;
}

Примечание: Если вы присоединитесь к Visual Studio Dev Essentials , они предоставят вам бесплатную подписку на 1 месяц.

...