I am looking in there, and I am coming back to the original problem from above. The httpmodule is working just fine. The problem is that the cookie is not coming back correct in safari correctly. when it loads in, instead of being like
9D6go9e973TE+2ZpuB6Kn5j8MJM=,26386,
it comes back as
9D6go9e973TE+2ZpuB6Kn5j8MJM=
this causes the session id to be lost, and it recreates a new one every time. Now, I don't know what is going on in the 4.1.0 version that might be different from the version we have here, but that is the underlying problem, and it is a bug in safari as far as I am concerned. My problem is that I now need to workaround this bug and get the session to load correctly.
For instance, I have tried changing a few things (noted below) to get rid of the = sign at the end of the base 64 encoding...
ClientSession.cs around line 70, I have tried
if (arr.Length > 0)
{
string hmac = arr[0];
int times = 0;
if (!arr[0].EndsWith("="))
{
hmac = arr[0].Substring(0, arr[0].Length - 1);
times = Convert.ToInt32(arr[0].Substring(arr[0].Length - 1, 1));
}
for (int i = 0; i < times; i++)
{
hmac += "=";
}
base.HMAC = hmac;
}
Around Helper.cs line 180
int count = 0;
while (str.EndsWith("="))
{
str = str.Substring(0, str.Length - 1);
count++;
}
str += count;
and in ServicePipeHelper.cs around line 615 doing something like this..
string hmac2 = hmac;
int count = 0;
while (hmac2.EndsWith("="))
{
hmac2 = hmac2.Substring(0, hmac2.Length - 1);
count++;
}
hmac2 += count;
if (hmac2.Equals(Helper.GetHMAC(customerSession.SessionId)))
This, however, doesn't let the pages load anymore, and I am probably missing another place I would need to re-add the equal sign. Anyway, ANY help you can give me in finding this session beyond this point would be most helpful. I have been in and out of the process quite a bit, and I am frankly at a loss as to how to get around this bug in safari.
Just so you are aware, this is running on IIS7 Server 2008, and is fully patched. I am not troubleshooting your code working correctly...as it appears to be. I just don't know what else I can do to load that sessionid given that safari won't give it to me in the cookie. I don't know what is different between your demo site, and our copy here, as no changes I have made in the past have anything to do with this code, so it should be whatever you are using.