I'm working with Mike Horton from the AD team to see if we can get a "dummy" AD provider that can be used on a DEV machine to examine this in more detail. The problem is that currently I'm left guessing. But to keep the conversation going here are some details regarding authentication:
DMX includes a module to authenticate WebDAV requests. This module is clearly visible in the web.config if everything is set up correctly. This module will run on every request that satisfies the settings of that line in the web.config. Now. When the module starts it first checks to see if the thread is authenticated or not. If it is, then it bypasses its own logic and just continues. This is what *should* happen with AD auth properly set up. Now we need to find out why this is not happening. Here is the crucial code:
If _request.IsWindowsAuthenticated Then
If _app.Context.User Is Nothing Then
FileLogger.WriteMessage(LogLevel.Debug, "Context.User is null")
Else
If _app.Context.User.Identity Is Nothing Then
FileLogger.WriteMessage(LogLevel.Debug, "Context.User.Identity is null")
Else
If _app.Context.User.Identity.Name Is Nothing Then
FileLogger.WriteMessage(LogLevel.Debug, "Context.User.Identity.Name is null")
Else
FileLogger.WriteMessage(LogLevel.Debug, "Context.User.Identity.Name = " & _app.Context.User.Identity.Name)
If _request.PortalSettings Is Nothing Then
FileLogger.WriteMessage(LogLevel.Debug, "PortalSettings is null")
Else
Dim dnnUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetUserByName(_request.PortalSettings.PortalId, _app.Context.User.Identity.Name)
If dnnUser IsNot Nothing Then
HttpContext.Current.Items("UserInfo") = dnnUser ' Set the user to dnn
End If
End If
End If
End If
End If
Return
End If
As you can see there is some logging happening if you switch the app to debug mode. This is done on the Main Options page when logged in as host. The log goes to portals/_default/DMX/log and DMX/Log in the portal home dir. Maybe you can spot some of the above messages.
Peter