Force SSL ON or OFF Function

When working on a site that may have some pages in SSL (the check out pages) and most pages not I use a function to switch between SSL and Non SSL pages.

First, I set the non secure and SSL URL’s in the config file under appSettings:

    <add key=”SSLURL” value=””/>
    <add key=”NonSSLURL” value=””/>

Next, in my utility class I add this function:

    Public Function PageStartUp()
        If Request.ServerVariables(“HTTPS”).ToLower = “on” And Not gIsSSLRequired Then
            If Request.QueryString.ToString.Length > 0 Then
                Response.Redirect(ConfigurationManager.AppSettings(“NonSSLURL”) & Request.ServerVariables(“SCRIPT_NAME”) & “?” & Request.QueryString.ToString)
                Response.Redirect(ConfigurationManager.AppSettings(“NonSSLURL”) & Request.ServerVariables(“SCRIPT_NAME”))
            End If
        End If
        If Request.ServerVariables(“HTTPS”).ToLower = “off” And gIsSSLRequired And ConfigurationManager.AppSettings(“SSLURL”).ToLower.Substring(0,5)=”https” Then
            If Request.QueryString.ToString.Length > 0 Then
                Response.Redirect(ConfigurationManager.AppSettings(“SSLURL”) & Request.ServerVariables(“SCRIPT_NAME”) & “?” & Request.QueryString.ToString)
                Response.Redirect(ConfigurationManager.AppSettings(“SSLURL”) & Request.ServerVariables(“SCRIPT_NAME”))
            End If
        End If
        Return True
    End Function

Be sure to add the public variable gIsSSLRequired in the class as well.

Then in the page load event of each page I add the following:

gIsSSLRequired = True
Call PageStartUp()

Cool, huh?