Since around version 7.x a possible severe bug has plagued the application in to where WebLink will consume every license assigned to it when a user and/or bot visits the site with cookies disabled.
Although WebLink displays a warning to the client this still does not prevent it from opening a connection. In fact, when cookies are disabled, WebLink will create a new connection on every click.
This video demonstrates the problem whenever a client has cookies disabled and navigates through a WebLink 8.x website. This also occurs whenever certain browsers go "Incognito" as well. It’s worth noting though that it is not known if this issue is due to WebLink itself and/or server configuration.
The method below is one way of ensuring that clients, who have cookies disabled, do not use up valuable licenses and also more importantly is that it does not give a false indication of heavy usage of a WebLink website.
- Open “Login.aspx” in any code/text editor.
- Copy the following code and paste it underneath the “</html>” tag;
<script language="vbscript" runat="server"> Protected Sub Page_PreInit(sender As Object, e As EventArgs) Handles MyBase.PreInit If (Request.Cookies("CookieCheck")) Is Nothing Then If Me.IsCookieDisabled Then Try ' If there is already a connection open, terminate it Dim Conn As WebLinkControls.WLConnection = Session("WLConnection") If Not IsNothing(Conn) Then Conn.Terminate() WebLinkControls.WLSession.End(Session) End If Catch ex As Exception End Try Dim error_message As String = "In order to use WebLink you must have cookies enabled. Please enable cookies in your browser and try your request again. If you are still receiving this message after enabling cookies please contact the administrator." Session("ErrorMsg") = error_message Server.Transfer("~/Error.aspx", False) End If End If End Sub Private Function IsCookieDisabled() As Boolean Dim currentUrl As String = Request.RawUrl If currentUrl.Contains("cc=1") = False Then Try Dim c As HttpCookie = New HttpCookie("CookieCheck", "1") c.HttpOnly = True c.Expires = DateTime.Now.AddDays(1) Response.Cookies.Add(c) If currentUrl.IndexOf("?") > 0 Then currentUrl = currentUrl + "&cc=1" Else currentUrl = currentUrl + "?cc=1" End If Response.Redirect(currentUrl) Catch End Try End If If Not Request.Browser.Cookies OrElse Request.Cookies("CookieCheck") Is Nothing Then Return True End If Return False End Function </script>
-
Save the file (no recompiling necessary).
The code above will check to truly see if the connecting client has cookies enabled and if not will redirect the client to a warning and also, more importantly, will stop WebLink from making a connection.
UPDATE: The code has been modified to accept re-written URLs in WebLink along with standard URLs.
Hope this helps!