LDAP signing and channel binding for the march 10th update in c# .net

Viewed 392

I have been looking into how these two new settings will effect with our c# code that connects to an ldap server and performs user lookups

Using the code below to connect to an AD i have found a few scenarios that no longer work when these settings are switched on.

private static LdapConnection ConnectAndBind(
            string server,
            int port,
            int timeout,
            string userName,
            string pwd,
            AuthType authType,
            bool useSSL,
            bool useV3)
        {
            var con = new LdapConnection(new LdapDirectoryIdentifier(server, port));
            if (useSSL)
            {
                con.SessionOptions.SecureSocketLayer = useSSL;
                con.SessionOptions.VerifyServerCertificate = VerifyServerCertificate;
                con.SessionOptions.QueryClientCertificate = QueryClientCertificate;
            }

            con.Timeout = new TimeSpan(0, 0, timeout);
            con.SessionOptions.ProtocolVersion = useV3 ? 3 : 2;
            try
            {

                con.AuthType = authType;
                con.Credential = new NetworkCredential(userName, pwd);
                con.Bind();

            }
            catch (Exception e)
            {

                throw new ProviderException(
                    ProviderException.ErrorIdentifier.AuthenticationFailed,
                    LanguageLogic.GetString("AuthenticationProvider.ConnectError"),
                    e.Message);
            }

            return con;
        }

This is used in the context of a webforms/mvc asp.net (4.5) app once connected its used to import user details in the the app

but at the moment depending on how the registry keys for the two settings on the AD server are set i am finding some situations where it does not connect (the error returned is that the supplied credentials are invalid)

results

The first two tables are kinda how i expected it to work with non signed/non ssl basic bind not working

how ever i cannot find a reason why when the Channel binding is set to required (table 3) it does not work for the other 3 red entries

Has any one else been working on this that could shed some light on the matter. would newer version of .net support this setting.

Thanks for any info

UPDATE 1

so i downloaded Softerra LDAP browser. i get the same results using that . so i dont think its my code.

as soon as i turn on the reg key for Channel Binding i get the specified credentials are invalid for those connection methods over SSL

i have updated the AD server with all the latest patches but no change.

0 Answers
Related