mayooran99 Ответов: 0

Как аутентифицировать пользователей через LDAP с ГСС ведут переговоры обязательной аутентификации с использованием C#?


Я новичок в LDAP. Я написал приведенный ниже код, который аутентифицирует пользователей с помощью LDAP. В настоящее время мне приходится проверять пользователей с помощью сервера, который имеет тип аутентификации ожидания GSS-Negotiate. Я не смог найти никаких примеров для проверки пользователя с таким типом привязки аутентификации. Приведенный ниже код, который я попробовал, не работает на этой обязательной аутентификации. Чего мне не хватает в приведенном ниже сегменте кода? Любая помощь будет очень признательна. Кроме того, есть ли интернет-сервер LDAP, на котором я могу проверить пользователя с привязкой GSS-Negotiate, чтобы проверить его?

Что я уже пробовал:

<pre lang="c#">

<pre>public static string AuthFunction_One(string identity, string password, string containerString, string adServerName, bool useLDAPS, IdentityType identityType)
    {

        string failedString = "FAILED";
        string successString = "SUCCESS";
        string returnValue = failedString;

        try
        {
            PrincipalContext ctx = null;
            if (useLDAPS)
            {
                ctx = new PrincipalContext(ContextType.Domain, adServerName, containerString, ContextOptions.Negotiate | ContextOptions.SecureSocketLayer);
            }
            else
            {
                ctx = new PrincipalContext(ContextType.Domain, adServerName, containerString);
            }
            UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(ctx, identityType, identity);
            PrincipalSearchResult<Principal> oPrincipalSearchResult = oUserPrincipal.GetGroups();
            try
            {
                foreach (Principal result in oPrincipalSearchResult)
                {

                }

            }
            catch (Exception ex)
            {
                NLogHelper.GetInstance().Log("ADUtilityClass", "AuthFunction_One", NLog.LogLevel.Debug, "Failed to probe groups. Ex: " + ex.ToString());
            }

            if (ctx.ValidateCredentials(identity, password))
            {
                return successString;
            }
            else
            {
                return failedString;
            }
        }
        catch (Exception ex)
        { 
            NLogHelper.GetInstance().Log("ADUtilityClass", "AuthFunction_One", NLog.LogLevel.Debug, "Error in function. Ex: " + ex.ToString());
            return failedString;
        }
    }

0 Ответов