Как аутентифицировать LDAP в.NET

URL-адрес, на который вы отправляете сообщение, выглядит неправильно в выводе консоли, который вы опубликовали. В вашем коде AJAX у вас есть это:

url:"{{route('race.post')}}"

Но это просто интерпретируется как есть, не интерпретируется как значение этого маршрута в Laravel.

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

13
задан Michael Rudner Evanchik 20 April 2009 в 17:23
поделиться

3 ответа

Все это можно сделать с помощью System.DirectoryServices.Protocols. Если вы создаете LdapConnection для каталога, вы можете использовать учетную запись службы для привязки, а затем выполнить последующую привязку для проверки подлинности учетных данных.

Эта учетная запись службы обычно используется для ограничения доступа к механизму проверки подлинности сервера. Таким образом, ни один случайный человек на улице не может попытаться авторизоваться на вашем сервере LDAP.

Кроме того, ожидаете ли вы, что каждый пользователь предоставит свое отличительное имя при входе в систему? В Active Directory требуется только имя sAMAccountName, но другим провайдерам, таким как eDirectory и SunONE, требуется различающееся имя для аутентификации.

Для выполнения этого типа аутентификации вам потребуется использовать учетную запись службы, которая предоставляется для аутентификации на сервере. , выполнить поиск пользователя с заданным именем пользователя и захватить это имя. Затем вы можете выполнить аутентификацию, используя это отличительное имя и пароль, которые были предоставлены.

Это будет работать для всех систем LDAP, за исключением Active Directory, которая будет довольна только sAMAccountName.

3
ответ дан 2 December 2019 в 00:32
поделиться

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

Успешный запрос означает, что все предоставлено правильно, а не обнаружение учетной записи означает, что что-то не так.

//use the users credentials for the query
DirectoryEntry root = new DirectoryEntry(
    "LDAP://dc=domain,dc=com", 
    loginUser, 
    loginPassword
    );

//query for the username provided
DirectorySearcher searcher = new DirectorySearcher(
    root, 
    "(sAMAccountName=" + loginUser + ")"
    );    

//a success means the password was right
bool success = false; 
try {
    searcher.FindOne();
    success = true;
}
catch {
    success = false;
}

Вероятно, не «передовой опыт», но может решить вашу проблему ...

11
ответ дан 2 December 2019 в 00:32
поделиться

У нас был веб-сайт, на котором требовалась аутентификация имени пользователя и пароля по учетным данным домена, и мы использовали функцию API LogonUser. Используйте его для входа в сеть (один из аргументов - тип входа), и все, что он делает, это проверяет учетные данные, он не ' Единственное предостережение заключается в том, что учетной записи службы требуется достаточный доступ для вызова LogonUser. Я предлагаю вам проверить документацию MSDN, чтобы узнать, что это за доступ, потому что он зависит от ОС.

0
ответ дан 2 December 2019 в 00:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: