Oui, un identifiant anonyme est un GUID. La chaîne de cookie est une valeur chiffrée contenant l'identifiant et d'autres données:
[Serializable]
internal class AnonymousIdData
{
internal string AnonymousId;
internal DateTime ExpireDate;
internal AnonymousIdData(string id, DateTime dt);
}
Par défaut, les cookies anonymes sont valides pendant 90 jours et sont mises à jour chaque visite.
Vous pouvez traiter Request.AnonymousID comme le nom d'utilisateur de la requête lorsque Request.IsAuthenticated == false.
voir AnonymousIdentificationModule
MISE À JOUR: En réponse à un commentaire, oui, vous pouvez décoder la valeur, mais pourquoi?
string aId = Request.AnonymousID;
string anonCookieValue = Request.Cookies[".ASPXANONYMOUS"].Value;
MethodInfo method = typeof(AnonymousIdentificationModule).GetMethod("GetDecodedValue", BindingFlags.Static | BindingFlags.NonPublic);
object anonymousIdData = method.Invoke(null, new object[] { anonCookieValue });
var field = anonymousIdData.GetType().GetField("AnonymousId", BindingFlags.Instance | BindingFlags.NonPublic);
string anonymousId = (string) field.GetValue(anonymousIdData);
field = anonymousIdData.GetType().GetField("ExpireDate", BindingFlags.Instance | BindingFlags.NonPublic);
DateTime expired = (DateTime) field.GetValue(anonymousIdData);
// why? just use Request.AnonymousID
Debug.Assert(aId == anonymousId);
Pouvez-vous déchiffrer la chaîne de cookies? –
Oui, voir mise à jour. mais pourquoi? –
Question valide. Je suppose que parce que je veux totalement gâcher mon application :-) Mais le vrai problème est ce problème que j'ai: http://stackoverflow.com/questions/2448720/different-users-get-the-same-cookie- value-in-aspxanonymous –