Try creating a System.Web.IHttpModule called CustomAuthenticationModule that subscribes to the AuthenticateRequest event. In your handler you need to set the HttpContext.Current.User principal, probably to a GenericPrincipal with the username and roles they have in your system.
Implement a role provider CustomRoleProvider deriving from Elsinore.ScreenConnect.ReadOnlyRoleProvider. Just override the GetRolesForUser method. This method will be called with the value from HttpContext.Current.User.Identity.Name that you should have populated from your module.
I guess you'll want to change this:
Code:<authentication mode="Forms">
to this:
Code:<authentication mode="None">
Put the cs files for both your http module and your role provider in a directory called App_Code off your install root.
Your role manager section should probably look like this:
Code: <roleManager enabled="true" defaultProvider="Custom">
<providers>
<clear />
<add name="Forms" type="Elsinore.ScreenConnect.XmlRoleProvider" />
<add name="Windows" type="Elsinore.ScreenConnect.WindowsRoleProvider" />
<add name="Custom" type="Elsinore.ScreenConnect.CustomRoleProvider" />
</providers>
</roleManager>
Your httpModules section should add your module:
Code: <httpModules>
<remove name="FileAuthorization" />
<remove name="FormsAuthentication" />
<add name="BasicMembershipFormsAuthenticationModule" type="Elsinore.ScreenConnect.BasicMembershipFormsAuthenticationModule, Elsinore.ScreenConnect.Web" />
<add name="DisplayWindowsAuthenticationModule" type="Elsinore.ScreenConnect.DisplayWindowsAuthenticationModule, Elsinore.ScreenConnect.Web" />
<add name="CacheBusterModule" type="Elsinore.ScreenConnect.CacheBusterModule, Elsinore.ScreenConnect.Web" />
<add name="DemandAuthenticationModule" type="Elsinore.ScreenConnect.DemandAuthenticationModule, Elsinore.ScreenConnect.Web" />
<add name="SetupModule" type="Elsinore.ScreenConnect.SetupModule, Elsinore.ScreenConnect.Web" />
<add name="CompressionModule" type="Elsinore.ScreenConnect.CompressionModule, Elsinore.ScreenConnect.Web" />
<add name="CustomAuthenticationModule" type="Elsinore.ScreenConnect.CustomAuthenticationModule" />
</httpModules>