Here's a global.asax.vb file that will reproduce the problem...not sure why it's splitting cookies using the comma as a separator. The separator should be a semicolon...
Imports System.Web
Imports System.Web.SessionState
Imports CuteSoft.Chat
Public Class [Global]
Inherits System.Web.HttpApplication
Implements CuteSoft.Chat.IHttpApplicationConnectionStringProvider
Implements CuteSoft.Chat.IHttpApplicationUserAdapter
Implements CuteSoft.Chat.IHttpApplicationDataProvider
Implements CuteSoft.Chat.IHttpApplicationSupportLogin
Public Function GetConnectionString(ByVal user As CuteSoft.Chat.UserIdentity) As String Implements CuteSoft.Chat.IHttpApplicationConnectionStringProvider.GetConnectionString
Return System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
End Function
Public Function GetUserIdentity() As CuteSoft.Chat.UserIdentity Implements CuteSoft.Chat.IHttpApplicationUserAdapter.GetUserIdentity
Dim id As String = GetUserUniqueName()
If (id Is Nothing) Then
Return CuteSoft.Chat.UserIdentity.CreateNull()
End If
Dim identity As CuteSoft.Chat.UserIdentity = New CuteSoft.Chat.UserIdentity(id, Nothing, Context.Request.UserHostAddress)
Return identity
End Function
Public Function GetUserUniqueName() As String Implements CuteSoft.Chat.IHttpApplicationUserAdapter.GetUserUniqueName
Dim cookies As String
cookies = HttpContext.Current.Request.Headers("Cookie")
Dim username As String
username = HttpContext.Current.Request.Cookies("ecm")("username")
Return Nothing
End Function
Public Function GetUserDisplayName(ByVal useruniquename As String) As String Implements CuteSoft.Chat.IHttpApplicationDataProvider.GetUserDisplayName
Return Nothing
End Function
Public Function IsAdministrator(ByVal useruniquename As String) As Boolean Implements CuteSoft.Chat.IHttpApplicationDataProvider.IsAdministrator
Return False
End Function
Public Function IsLobbyAdmin(ByVal useruniquename As String, ByVal lobby As CuteSoft.Chat.CuteChatLobby) As Boolean Implements CuteSoft.Chat.IHttpApplicationDataProvider.IsLobbyAdmin
'TODO: get list of admins for each lobby
Return False
End Function
Public Function ListUserUniqueName() As String() Implements CuteSoft.Chat.IHttpApplicationDataProvider.ListUserUniqueName
Return Nothing
End Function
Public Function SearchUserUniqueNameByDisplayName(ByVal userDisplayName As String) As String() Implements CuteSoft.Chat.IHttpApplicationDataProvider.SearchUserUniqueNameByDisplayName
Return Nothing
End Function
Public Sub SupportInit() Implements CuteSoft.Chat.IHttpApplicationSupportLogin.SupportInit
End Sub
Public Function SupportLogin(ByVal username As String, ByVal password As String) As Boolean Implements CuteSoft.Chat.IHttpApplicationSupportLogin.SupportLogin
Dim cookieEktGUID As HttpCookie
If (Context.Request.Cookies.Get("EktGUID") Is Nothing) Then
Dim strGUID As String = System.Guid.NewGuid.ToString
cookieEktGUID = New HttpCookie("EktGUID", strGUID)
cookieEktGUID.Path = "/"
cookieEktGUID.Expires = Now.AddYears(1)
Context.Response.Cookies.Add(cookieEktGUID)
End If
System.Web.Security.FormsAuthentication.SetAuthCookie(username, False, "/")
Dim cookEcm As HttpCookie = New HttpCookie("ecm")
cookEcm.Values("user_id") = 1
'******* The comma below seems to be parsed incorrectly by the live support operator client! ******
cookEcm.Values("site_id") = "/websrc/WorkArea/,679240192"
cookEcm.Values("userfullname") = "Application+Administrator"
cookEcm.Values("displayname") = ""
cookEcm.Values("username") = "admin"
cookEcm.Values("new_site") = "/websrc/WorkArea/"
cookEcm.Values("unique_id") = 679240192
cookEcm.Values("editoroptions") = "ewebeditpro"
cookEcm.Values("site_preview") = 0
cookEcm.Values("langvalue") = ""
cookEcm.Values("isMembershipUser") = 0
cookEcm.Values("DefaultLanguage") = 1033
cookEcm.Values("NavLanguage") = 1033
cookEcm.Values("SiteLanguage") = 1033
cookEcm.Values("template") = ""
cookEcm.Values("folderid") = ""
cookEcm.Values("width") = "790"
cookEcm.Values("height") = "580"
cookEcm.Values("FolderPath") = ""
cookEcm.Values("DisplayBorders") = 1
cookEcm.Values("DisplayTitleText") = 1
cookEcm.Values("UserCulture") = 1033
cookEcm.Values("LastValidLanguageID") = 1033
If (Not Context.Request.Cookies.Get("ecm") Is Nothing) Then
Context.Response.Cookies.Remove("ecm")
End If
Context.Response.Cookies.Add(cookEcm)
Return True
End Function
End Class