Hi Mike,
I've successfully written an Authentication provider to utilise sessions from our 3rd party application for DNN 5.1.1, and I've also migrated a set of modules previously used in DNN 4.4.0. The migration of these modules worked well, however they included a "custom" login control, which had two modes that displayed a different UI. Thus you could have multiple instances across the portal, one compact login control in the sidebar, and a larger view designed to be in the Content Pane. I decided I needed to convert my existing Custom login, with the logic of the Authentication Provider, and this works fine, but only uses the default view mode, and there is no way of accessing/editing the settings the control uses to determine it's appearance.
I've worked out the Authentication Prividers Login control gets given the moduleconfiguration context from the "Account Login" control that hosts it. This gets injected into the control via Website/DesktopModules/Admin/Authentication/Login.ascx.vb:310:
Private Sub BindLoginControl(ByVal authLoginControl As AuthenticationLoginBase, ByVal authSystem As AuthenticationInfo)
...
authLoginControl.ModuleConfiguration = Me.ModuleConfiguration
...
AddHandler authLoginControl.UserAuthenticated, AddressOf Me.UserAuthenticated
End Sub
Note that I'm looking to individually configure different instances of the hosted login control per page, so I'm looking for something tied to the ModuleSettings table via TabModuleId. Thie above code means my Auth Provider login control has access to the settings of the "Account Login" controls instance on the page, which is pretty much what I was looking for. However, the Account Login doesn't have a settings control, or a way to host settings controls for the authentication providers login control in the same way that a "normal" DotNetNuke module does (where you create an extra control in the module definition with a key of "settings"). I realise there is a global settings control - implemented in Admin->Extensions->My Authentication Provider - but I don't wish to affect the appearance of all my login modules globally.
The solution I've currently found is to add a "settings" button to my login control that appears when an admin is logged in, and embed my existing Module Settings control into the Auth Providers Login control. I have to give it the ModuleConfiguration context so that it has the right TabModuleId to write the settings against, but it works.
Since I now have a solution, I'm basically wondering if there is a better way to do this? Something that integrates into DNN better? Is there a mechanism to register a "per page" settings control for Auth Providers login controls?