Scenario: DNN 4.5.3, host account logged in, add Account Login module to a page... seemingly nothing happens, repeat 7 times..., logoff, WOW! 7 Account login modules on the page!
Reason: IF statement inside admin/security/Signin.ascx.vb that makes module container invisible if user is authenticated.
Besides that such a behavior is a definite bug (on administrative side, of course) as it makes it impossible to manage account login module, it's very questionable in general - I personally liked the previous version by far more - it was displaying User and Login skin objects is user is authenticated.
Quick solution: go to Signin.ascx and change
' if a Login Page has not been specified for the portal
If IsAdminControl() Then
' redirect to current page
Response.Redirect(NavigateURL(), True)
Else ' make module container invisible
ContainerControl.Visible = False
End If
TO
' if a Login Page has not been specified for the portal
If IsAdminControl() Then
' redirect to current page
Response.Redirect(NavigateURL(), True)
Else ' make module container invisible
If Not UserInfo.IsInRole("Administrator") AndAlso Not UserInfo.IsSuperUser Then
ContainerControl.Visible = False
End If
End If
This will (should) fix it for Administrative usage.
Another solution is to change it back to the functionality it had. To do that, add the following to admin/security/Signin.ascx
<asp:Panel ID="pnlAuthenticated" runat="server" Visible="false">
<table cellspacing="0" cellpadding="3" border="0" summary="SignIn Design Table" width="160">
<tr>
<td><asp:Label ID="lblAuthenticatedHelp" runat="server" class="Normal" resourcekey="AuthenticatedHelp" /></td>
</tr>
<tr>
<td><dnn:UserSkin ID="userSkin" runat="server" /></td>
</tr>
<tr>
<td><dnn:LoginSkin ID="userLogin" runat="server" /></td>
</tr>
</table>
</asp:Panel>
AND! in admin/security/Signin.ascx.vb replace
Else ' user is already authenticated
' if a Login Page has not been specified for the portal
If IsAdminControl() Then
' redirect to current page
Response.Redirect(NavigateURL(), True)
Else ' make module container invisible
ContainerControl.Visible = False
End If
End If
WITH
Else ' user is already authenticated
pnlAuthenticated.Visible = True
End If