Joey Navarro wrote
Mike, I'm not quite sure the AD provider is behaving as you described.
I just performed the following test. I installed a fresh, new DNN 4.8.4 blank site, logged in as host and installed the 01.00.03 AD provider module. I then set the authentication settings as suggested and entered the Auto-Login IP Address values of 10.2.2.0 - 10.2.2.255 (our internal IP addresses). I checked the web.config file to make sure the following line is uncommented: add name="Authentication" type="DotNetNuke.Authentication.ActiveDirectory.HttpModules.AuthenticationModule, DotNetNuke.Authentication.ActiveDirectory" /> I reset IIS by invoking iisreset from the command line. I also cleared the IIS log. From another internal computer, I opened my browser, cleared all cookies and then browsed to the site. The site auto-logged me in using my AD credentials. When I viewed the IIS log however, there are no redirects to the windowssignin.aspx page.
I guarantee it went through windowssignin.aspx if it detected that the authentication status was undefined (what it'll see if the cookie has expired or isn't there). The pertinent code from AuthenticationModule.vb (which is what is called when the line in <httpModules> is uncommented) is below (slightly different from the .03 version due to fixes for .04 but the logic is the same):
If (authStatus = AuthenticationStatus.Undefined) Then 'OrElse (blnWinLogon) Then <---There's three status types (Undefined, Windows, and WinLogoff). If Windows is returned then the user is already logged into the site so all is bypassed (otherwise we'd be in an infinite loop) and WinLogoff is pretty self explanitory.
AuthenticationController.SetStatus(_portalSettings.PortalId, AuthenticationStatus.WinProcess)
Dim url As String = Request.RawUrl
Dim arrAutoIP() = config.AutoIP.Split(";")
'ACD-7664
Dim strClientIP As String = ADSI.Utilities.GetIP4Address(Request.UserHostAddress)
For intCount As Integer = 0 To arrAutoIP.Length - 1
Dim strAutoIP As String = arrAutoIP(intCount)
If (InStr(strAutoIP, "-")) Then
Dim arrIPRange() = strAutoIP.Split("-")
Dim lClientIP As Long = IPAddressToLong(strClientIP)
If lClientIP >= IPAddressToLong(ADSI.Utilities.GetIP4Address(Trim(arrIPRange(0)))) And lClientIP <= IPAddressToLong(ADSI.Utilities.GetIP4Address(Trim(arrIPRange(1)))) Then
url = GetRedirectURL(Request, _portalSettings) <--- Returns the path to WindowsSignin.aspx
SetDNNReturnToCookie(Request, Response, _portalSettings)
Exit For
End If
ElseIf (Not InStr(Left(strClientIP.ToString, strAutoIP.Length), strAutoIP) = 0) Or (strAutoIP = "") Then
url = GetRedirectURL(Request, _portalSettings) <--- Returns the path to WindowsSignin.aspx
SetDNNReturnToCookie(Request, Response, _portalSettings)
Exit For
End If
Next
Response.Redirect(url) <---Does the Redirect to WindowsSignin.aspx