One solution is to create a base page , so that all pages inherits from ,
then in the base page load function , you can check the Current user Principal type , if its not like your custom principal type, you set it to your custom principal,
If Context.User.Identity.IsAuthenticated Then
' check to see if the current principal is not like your principal type
If Not (TypeOf context.User Is YourPrincipal) Then
Dim newUser As New YourPrincipal(.....
Context.User = newUser
End If
End If
Another solution is to check that in Application_AuthenticateRequest ( from global application class , or custom HttpModule)