Different users get the same value in .ASPXANONYMOUS
- by Malcolm Frexner
My site allows anonymous users.
I saw that under heavy load user get sometimes profile values from other users.
This happens for anonymous users.
I logged the access to profile data:
    /// <summary>
    /// 
    /// </summary>
    /// <param name="controller"></param>
    /// <returns></returns>
    public static string ProfileID(this Controller controller )
    {
        if (ApplicationConfiguration.LogProfileAccess)
        {
            StringBuilder sb = new StringBuilder();
            (from header in controller.Request.Headers.ToPairs()
                          select string.Concat(header.Key, ":", header.Value, ";")).ToList().ForEach(x => sb.Append(x));
            string log = string.Format("ip:{0} url:{1} IsAuthenticated:{2} Name:{3} AnonId:{4} header:{5}",
                                       controller.Request.UserHostAddress,
                                       controller.Request.Url.ToString(),
                                       controller.Request.IsAuthenticated,
                                       controller.User.Identity.Name,
                                       controller.Request.AnonymousID,
                                       sb);
            _log.Debug(log);
        }
        return controller.Request.IsAuthenticated ? controller.User.Identity.Name : controller.Request.AnonymousID;
    }
I can see in the log that  user realy get the same cookievalue for .ASPXANONYMOUS even if they have different IP.
Just to be safe I removed dependency injection for the FormsAuthentication.
I dont use OutputCaching.
My web.config has this setting for authentication:
 <anonymousIdentification enabled="true" cookieless="UseCookies" cookieName=".ASPXANONYMOUS" 
      cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" />
  <authentication mode="Forms">
        <forms loginUrl="~/de/Account/Login" />
    </authentication>
Does anybody have an idea what else I could log or what I should have a look at?