More info about the above problem that I neglected to mention:
I have verified (in the DB) that the Login page has not been modified from the default, i.e. in dbo.Portals table the LoginTabId is set to NULL.
Since I was in the DB anyway I just pulled out the log entry from the Event Viewer. Here's the exception stack trace:
DotNetNuke.Services.Exceptions.PageLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at System.Net.WebPermission.FromXml(SecurityElement securityElement)
at System.Security.PermissionSet.CreatePerm(Object obj, Boolean ignoreTypeLoadFailures)
at System.Security.PermissionSet.CreatePerm(Object obj, Boolean ignoreTypeLoadFailures)
at System.Security.PermissionSet.CreatePermission(Object obj, Int32 index)
at System.Security.PermissionSetEnumeratorInternal.MoveNext()
at System.Security.PermissionSet.ToXml(String permName)
at System.Security.PermissionSet.ToXml()
at System.Security.SecurityException..ctor(String message, AssemblyName assemblyName, PermissionSet grant, PermissionSet refused, MethodInfo method, SecurityAction action, Object demanded, IPermission permThatFailed, Evidence evidence)
at System.Security.SecurityException.MakeSecurityException(AssemblyName asmName, Evidence asmEvidence, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object assemblyOrString, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet grantedSet, PermissionSet refusedSet, CodeAccessPermission demand, PermissionToken permToken, RuntimeMethodHandle rmh, Object assemblyOrString, SecurityAction action, Boolean throwException)
at System.Security.CodeAccessSecurityEngine.CheckHelper(CompressedStack cs, PermissionSet grantedSet, PermissionSet refusedSet, CodeAccessPermission demand, PermissionToken permToken, RuntimeMethodHandle rmh, Assembly asm, SecurityAction action)
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
at System.Security.CodeAccessPermission.Demand()
at DotNetNuke.Authentication.OpenID.Login.get_Enabled()
at DotNetNuke.Modules.Admin.Authentication.Login.BindLogin()
at DotNetNuke.Modules.Admin.Authentication.Login.ShowPanel()
at DotNetNuke.Modules.Admin.Authentication.Login.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)