looks like the live support operator can't deal w/ commas in cookie values

  •  10-04-2006, 5:35 PM

    looks like the live support operator can't deal w/ commas in cookie values

    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



View Complete Thread