Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsAuthenticationAuthenticationAD Fixes - Post YourAD Fixes - Post Your's Here
Previous
 
Next
New Post
9/30/2008 11:00 PM
 

Charles Moyer wrote

If you have to deal with an overly aggressive network administrator and can't or don't what to run your whole site under an impersonated user id, make the following changes to your ADSI Provider.  I have used this method with all versions of  the DotNetNuke AD code but the code listed here is for 4.06x + code.

Was Charles' modification incorporated into a later version of the AD module?  I'm testing with 1.0.3 and I've found that <identity impersonate="true"/> by itself doesn't work for me.  Hard coding a user name/pwd works fine, but doesn't meet our company security policy.  I'm willing to try his solution, but wasn't sure if it has already been incorporated and just won't work in my case.

 
New Post
10/1/2008 12:06 AM
 

No it hasn't as other issues (work/family) have prevented me getting a decent start on the 2.0 version of the AD Provider.

 
New Post
10/1/2008 3:50 PM
 

That's very understandable.  I certainly appreciate all of the support you provide for this module.  I'll try out that rebuild solution for now.

 
New Post
2/10/2009 12:12 PM
 

 

Mike, et. al:
While I certainly appreciate all efforts to make the AD provider a great way to connect, I have researched this module very deeply and have found a number of issues and concerns.
For the last two weeks and a little over a hundred hours with this provider, I found that it is nearly impossible to connect to an external ldap provider.  For instance, I have a DNN instance that I want to connect to a separate AD/LDAP source outside the domain that DNN is installed. (the DNN server is in a DMZ, and the AD server goes through a special port to our AD server which contains the private AD server.)
Willing jumping into the code (that's where the 100+ hours came from), I quickly was overwhelmed with the amount of calls to the Configuration class.. both with the AD and the ADSI configuration classes.  If one is to step through the code, one will notice that there are nearly 50 calls to the configuration object's GetConfig() method.  When it pulls from the cache, the cache is, nearly every time, set to nothing.  (Recursion anyone? -- the call to GetConfig creates a call to itself to set the cache.)
Under the new world of Windows Server 2008, logins may have to contain the suffix @mydomain.com in order to login....wait… let me back up a moment...
Our goal is not to have internal domain users login necessarily... nor single sign-on (SSO)  We want our users to login using their email address.  @ signs and .com (or any .xxx (top level domain) doesn't seem to work.  Why Myfirstname.lastname works I have no idea.  But make note that the sAMAccount (pre-Windows 2000) login is a random hash now and I don't know why Microsoft decided to do it that way.
So, we want our users to be authenticated against AD via LDAP://dc=mydomain, dc=com.  The GC:// nor LDAP://rootDSE because the DNN server is not a part of the domain it's attempting to authenticate against.
After many hours of attempting to fix the "target" LDAP:// vs GC issue, I gave up in the interest of time.  
So, with that said, may I recommend that the AD Provider be rewritten (seriously).  I know the AD provider has gone under a number of changes over the years, so I understand (I'm not trolling, I promise); but seriously, the code is very difficult to follow, (I'm a seasoned developer and I had to make a map of all the calls and I still got lost... the Configuration class is reported as ambiguous by VS2005. 
Here's my recommendation (if you don't mind), I think it will help the overall project.
--Start from scratch to avoid
--Refactor the Configuration class and give it a new name that doesn't clash with the ADSI.Configuration class. 
--Pass in the PortalProperties and the Configuration class where it makes sense– cuts down on literally about 50 calls to getconfig() and GetPoralSettings().
--add a private property _config to hold the configuration where needed to avoid the dreaded GetConfig()  Maybe make the Config a static class (it seems like that was the original intent of the class by looking at the older code.. but not sure).
--step through the code, and you'll see what I'm talking about.
--Allow root domain to be: LDAP://x.x.x.x/dc=mydomain, dc=com
----when ldpa:// is used in root domain, avoid running to gc:// or ldap://rootDSE
--See what's up with the cache-- never really worked for me and I ended up with recursion.(that's when I gave up.)
--please consider starting from the ground up... (if you haven't already. :-)

Also, (some good news) the Windows200 on IIS/7 seems to work fine.  (Oh, that reminds me.. the check pipeline method is called every page call!)
MOST IMPORTANTLY,  LOGON_USER (or whatever it is) will never be set because our users are external and will never be logged into the network.  The popup box to login cannot be displayed.

Why am I writing this?  Because, I'm seeing an increased need for external logins to be authenticated via AD.  The source for AD/user info may not be in the same domain as the DNN server (in most cases for security reasons).   I did get the AD server to authenticate using the Secure (not delegate) mode and it worked very well -- I just couldn't get around the Configuration, GetConfig(), ADSI.Configuration, issues.
I'm very passionate about this project, however, it needs some help.  Hopefully the community can help.
If you would like to discuss this further, just let me know...   (if you want, register at www.landango.com and we can discuss.)

Thanks Mike!

 
New Post
2/10/2009 2:01 PM
 

michael1047 wrote

 

Mike, et. al:
While I certainly appreciate all efforts to make the AD provider a great way to connect, I have researched this module very deeply and have found a number of issues and concerns.
For the last two weeks and a little over a hundred hours with this provider, I found that it is nearly impossible to connect to an external ldap provider.  For instance, I have a DNN instance that I want to connect to a separate AD/LDAP source outside the domain that DNN is installed. (the DNN server is in a DMZ, and the AD server goes through a special port to our AD server which contains the private AD server.)



Same situation here... but I'm not sure how I would set it up.

 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsAuthenticationAuthenticationAD Fixes - Post YourAD Fixes - Post Your's Here


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out