Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Prüfen ob ein Browser Cookies annimmt

Geschrieben von: Christian Koller
Kategorie: Komponenten

This printed page brought to you by AlphaSierraPapa

Ob ein Browser Cookies annimmt ist in vielen Anwendungen wichtig. Wenn Sie eine einfache E-Commerce Applikation implementieren, bei der die bereits bestellten Waren (Shopping-Bag) in einer Session Variablen mitgeführt werden, oder einen dauerhaften Cookie zur Personalisierung Ihrer Website setzen wollen, immer hängt der Erfolg Ihres Bemühens davon ab, ob der Browser Cookies annimmt.

Ein Cookie ist eine kleine Informationsmenge, die im Browser gespeichert wird. Man unterscheidet temporäre Cookies, die nur existieren solange noch ein Browserfenster geöffnet ist, und permanente Cookies, die bis zu Ihrem Ablaufdatum in einer Textdatei (meist Cookies.txt genannt) gespeichert werden.

Wozu braucht man nun Cookies genau? Wenn Sie unter ASP eine Session Variable für einen bestimmten User benutzen, so wird die Session-ID in Form eines temporären Cookies im User Browser gespeichert. Das bedeutet auf der anderen Seite, daß Sie keine Session Variablen einsetzen können, wenn der Browser keine Cookies annimmt.

Session Variablen werden der Einfachheit halber oft in Paßwort geschützten Bereichen einer Website eingesetzt. Dabei wird geprüft, ob für den augenblicklichen User eine bestimmte Session Variable, zum Beispiel Session("User") einen Wert enthält. Wenn der User die richtige User-Name/Paßwort Kombination in einer Login Seite eingibt, dann wird im ASP Script der Login-Seite dieser Session Variable ein Wert zugewiesen. Immer wenn eine geschütze Datei abgefragt wird, dann prüft ASP ob die Session Variable einen Wert enthält. Wenn kein Wert in der Variablen gespeichert ist, so wird der Browser vom ASP-Script mit Response.Redirect automatisch zur Login Seite (oder einer anderen Seite) umgeleitet:

<%
' Anfang der ASP Seite

If Session("User") = "" Then
	' User nicht eingeloggt, daher einen 
	' Redirect zur Login Seite ausfuehren:
	Response.Redirect "Login.asp"
	Response.End
End If
' Hier kommt der geschuetzte Inhalt der Seite:

...

%>

Nun aber zurück zur Frage wie man herausfindet ob ein Browser Cookies auch annimmt.

Eine einfache und elegante Lösung läßt sich mit der ASP Komponente BrowserHawk 2000 von CyScape verwirklichen.

Das folgende Beispiel zeigt, wie man mit der BrowserHawk 2000 Komponente effizient abfragen kann ob Cookies vom Browser akzeptiert werden. Das ASP-Script benutzt dazu die Cookies und die CookiesEnabled Eigenschaften der BrowserHawk Komponente. Die Cookies Eigenschaft enthält die Information, ob der Browser technisch prinzipiell in der Lage ist, Cookies zu akzeptieren. Die CookiesEnabled Eigenschaft schließlich liefert die Information, ob der Browser tatsächlich Cookies akzeptiert. Dafür muß allerdings vorher die CookieDetector Methode der Komponente ausgeführt werden.

ASP Beispiel, das effizient prüft ob der Browser Cookies annimmt (ausführbares Beispiel):

<% 
Dim BrowserHawk     ' BrowserHawk 2000 Objekt
Dim CookieAccept    ' Enthaelt True wenn der Browser Cookies annimmt
CookieAccept = False

Set BrowserHawk = Server.CreateObject("cyScape.browserObj")

If BrowserHawk.Cookies = True Then
	' Cookies werden vom Browser technisch unterstuetzt
	BrowserHawk.CookieDetector "noredirect"
	If BrowserHawk.CookiesEnabled Then
		' Cookies werden vom Browser angenommen
		CookieAccept = True
	End If
End If

If CookieAccept = True Then
	' Hier die Variante wenn Cookies angenommen werden
	<% 
	... 
	%>
Else
	' Hier die Variante wenn keine Cookies angenommen werden
	<% 
	...
	%>
End If
%>

Es gibt einen Punkt auf den man achten sollte: Wenn man die CookieDetector Methode einsetzt, so kann man mit der selben Seite kein Formular empfangen, das mit der POST-Methode abgeschickt wurde.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20000412.zip

Verwandte Artikel

Browsereigenschaften mit BrowserHawk 2000 bestimmen
http:/www.aspheute.com/artikel/20000410.htm
Dynamische Stylesheets
http:/www.aspheute.com/artikel/20010306.htm
Einfacher Test, ob der Browser Cookies annimmt
http:/www.aspheute.com/artikel/20000907.htm
Global.asa: Verwendung, Events und Probleme
http:/www.aspheute.com/artikel/20001018.htm
Session Variablen - Verwendung und Stolpersteine
http:/www.aspheute.com/artikel/20000505.htm
Zwischenspeichern von ASP Seiten
http:/www.aspheute.com/artikel/20000517.htm

Links zu anderen Sites

CyScape
http://www.cyscape.com/

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.