Я хотел бы аутентифицировать имя пользователя и пароли для моего приложения в операционной системе Windows с любой службой каталогов. Например, это может быть активный каталог microsoft, Novell eDirecotry или SunOne. Я уже знаю, как сделать этот код изначально для Microsoft Active Direcotry с С#. (Я полностью отказался от использования ADSI и создал компромисс с низким уровнем)
Как я пытаюсь выполнить аутентификацию с помощью Novel eDirecotory, я установил проект Mono. Внутри монопроекта они предоставляют вам Novell.Directory.ldap.dll. Код выглядит примерно так же, как и для Microsoft Active Directory. (http://www.novell.com/coolsolutions/feature/11204.html)
Для SunOne мне сказали использовать тот же код, что и активный директив, но строка подключения ldap немного отличается. (http://forums.asp.net/t/354314.aspx) (http://technet.microsoft.com/en-us/library/cc720649.aspx)
Чтобы усложнить мой проект, большинство клиентов используют "учетную запись службы": это означает, что мне нужно связать с именем пользователя и паролем администратора, прежде чем я смогу аутентифицировать обычное имя пользователя и пароль. Мои вопросы: 2 части.
1) Из того, что я объяснил выше, это правильное направление, которое я должен пройти аутентификацию против каждого отдельного сервисного обслуживания?
2) Я чувствую, что мне вообще не нужно делать какой-либо из этого кода. Я также чувствую, что условие использования учетной записи службы не является существенным. Если все, о чем я забочусь, это аутентификация имени пользователя и пароля на компьютере с Windows, почему мне даже нужно использовать ldap? Я имею в виду, подумай об этом. Когда вы заходите на свой компьютер утром, вам не нужно предоставлять учетную запись службы только для входа. Я могу легко аутентифицировать имя пользователя и пароль в приглашении DOS с помощью функции runas, и мне будет отказано или нет, и вы можете проанализировать текстовый файл. Я уверен, что есть другие способы, которыми я могу передать имя пользователя и пароль операционной системе Windows, в которой я включен, и сообщит мне, является ли имя пользователя и пароль действительным для домена, в котором он включен. Я прав? Если да, то какие предложенные способы у вас есть?
Майкл Еванчик www.MikeEvanchik.com