
Mellékelt példa megnyitása előtt szükséges egy IdentifyUser nevű virtuális könyvtár létrehozása, mely a példa könyvtárára mutat. Ehhez nyissa meg a mellékelt mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
A megvalósításhoz cookie-kat használunk, melybe eltárolunk egy egyedi azonosítót, mely a felhasználó gépét egyértelműen azonosítja. Ennek a megvalósításnak vannak hátrányai, például egy régi felhasználót csak addig tudunk azonosítani, amíg a cookie a gépén van. További hátrány, hogy ezzel a módszerrel valójában a felhasználó számítógépe kerül azonosításra, nem maga a személy. Ezekért cserébe viszont olyan rendszert kapunk, melynél nem szükséges a felhasználókat beléptetni felhasználói névvel, jelszóval, hanem az azonosításuk automatikusan megtörténik. Ez a módszer esetleg kombinálható egy szokásos felhasználói névvel, jelszóval történő azonosítással, így azok akik bejelentkeznek, egyértelműen azonosíthatók, akik nem jelentkeznek be, csak használják a web oldalainkat, azokról is kapunk némi információt.
A lap betöltésénél ellenőrizzük, hogy a kéréshez identifyuser néven tartozik-e cookie. Amennyiben igen, akkor már egy régi felhasználóról van szó, így annak egyedi azonosítóját az s változóba kiolvashatjuk.
private void Page_Load(object sender, System.EventArgs e)
{
string s = "";
string c = "identifyuser";
if (Request.Cookies[c] != null)
{
s = Request.Cookies[c].Value;
Label2.Text = "régi felhasználó";
}
Amennyiben a kéréshez nem tartozik cookie, akkor új felhasználóval van dolgunk. Ekkor létre kell hoznunk számára egy új azonosítót. Ehhez az azonosítóhoz a DateTime osztály Now property-jének Ticks property-jét használjuk fel. Ez egy olyan 64 bites szám, mely 100 ns-os időegységekben számlálja az 1. év január 1-jétől eltelt időt. Így minden felhasználónk egy egyedi számot kap, melyet hexadecimálissá alakítunk és sztringként tároljuk a cookie-ben, melynek lejárati idejét a DateTime osztály lehető legnagyobb értékére állítjuk be.
else
{
s = DateTime.Now.Ticks.ToString("X");
HttpCookie cookie = new HttpCookie(c, s);
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
Label2.Text = "új felhasználó";
}
Label1.Text = s;
}