We're using Active Directory with mojoPortal in production, and I've actually worked on this core code before (adding the option to do database authentication, with fallback to LDAP authentication).
Before making your changes, did you try using the stock setting that was shown (CN)? I contend that it would have worked for you as delivered.
First off, the setting text is a little bit misleading. In reality, the code only uses the UserDNKey value to determine whether to do an LDAP login, or an Active Directory login, like this:
if (ldapSettings.UserDNKey == "uid") //OpenLDAP
{
return LdapStandardLogin(ldapSettings, uid, password);
}
else //Active Directory
{
return ActiveDirectoryLogin(ldapSettings, uid, password);
}
Second, the ActiveDirectoryLogin() code uses a hard coded value of sAMAccountname for the search, like this:
ds.Filter = "(&(sAMAccountName=" + uid + "))";
So, long story short, I don't believe your database changes could have had any effect on the outcome. Joe, if you think it's worthwhile, in the next release you could change the User Attribute Key setting description to "Directory Type" and the drop-down text to "LDAP" and "Active Directory" to avoid confusion.
Jamie