Laden...

asp.net cookie und sessionID

Erstellt von ChrisBa vor 13 Jahren Letzter Beitrag vor 13 Jahren 6.641 Views
C
ChrisBa Themenstarter:in
54 Beiträge seit 2011
vor 13 Jahren
asp.net cookie und sessionID

hallo zusammen,
ich habe für meinen Übungs-WebShop ein paar asp.net - seiten erstellt.

ich möchte wenn ein user auf meine start seite gelangt, dass er dann ein cookie mit einer einmaligen ID bekommt. akzeptiert er das cookie nicht soll ihm eine eindeutige nummer (SessionID) zugewiesen werden.

da ich da noch keine erfahrung darin habe bin ich dankbar für jede hilfe.
bitte wie immer so einfach wie möglich.
köönt ihr mir ein paar tips geben wie z.b. ganz simpel und grundlegend ein cookie und ne session id geschrieben wird.

vielen dank,
mfg

Das Schicksal bevorzugt jene die bereit sind.

D
615 Beiträge seit 2009
vor 13 Jahren

Hallo

köönt ihr mir ein paar tips geben wie z.b. ganz simpel und grundlegend ein cookie und ne session id geschrieben wird.

Gehört zwar zu den Grundlagen aber hier :

Cookies :


public bool SetCookie(string cookiename, string cookievalue ,int iDaysToExpire)
{
try{
HttpCookie objCookie = new HttpCookie(cookiename);
Response.Cookies.Clear();
Response.Cookies.Add(objCookie);
objCookie.Values.Add(cookiename,cookievalue);
DateTime dtExpiry = DateTime.Now.AddDays(iDaysToExpire);
Response.Cookies[cookiename].Expires =dtExpiry;
}
catch( Exception e){
return false;
}
return true;
}

public string GetCookie(string cookiename){
string cookyval="";
try{
cookyval= Request.Cookies[cookiename].Value;
}
catch(Exception e){
cookyval="";
}
return cookyval;
}

Session


Set:
Session["Product1"] = "Hallo mein Produkt";
Get:
string result = Session["Produkt1"]

Beste Grüsse

Diräkt

C
ChrisBa Themenstarter:in
54 Beiträge seit 2011
vor 13 Jahren

Ah ja, vielen dank.
konnte ich gut gebrauchen.

zum nächsten problem...
wenn ein user auf meine startseite gelangt möchte ich prüfen ob dieser user schon ein Cookie von mir besitzt. ich möchte das am liebsten mit ner if-schleife lösen.
nur wie wird das geschrieben???
mein Versuch:
wie das in den Klammern der if-schleife aussehen soll, weiß ich nicht.


if (Cookie["BesucherCookie"] == null)
            {
                Guid EindeutigeID = Guid.NewGuid(); //Erstellen einer eindeutigen Guid
                Response.Cookies["BesucherCookie"].Value = EindeutigeID.ToString(); //Erstellen des Cookies
            }



Das Ganze befindet sich im Page_Load

mfg

Das Schicksal bevorzugt jene die bereit sind.

D
615 Beiträge seit 2009
vor 13 Jahren

Hallo

Hast du meine Get Methode wirklich angesehen ?

Du kannst folgendes verwenden :




if(!Page.IsPostback  && !string.IsNullOrEmpty(GetCookie(BesucherCookie))
{
//Generate ID bla
}


Achtung, ich habe gerade kein VS zur Hand, betreff schreibfehler...

Beste Grüsse

Diräkt

C
ChrisBa Themenstarter:in
54 Beiträge seit 2011
vor 13 Jahren

Danke. habs natürlich gelesen, bin nur nicht mit get und set so gut vertraut.

hab deine if- anweisung mal versucht. nur verstehe ich nicht wirklich was das heist??
hab da 2 fehler. ich hänge da echt fest...

Das Schicksal bevorzugt jene die bereit sind.

C
ChrisBa Themenstarter:in
54 Beiträge seit 2011
vor 13 Jahren

einen "Fehler" gefunden, ein großes "B" bei .IsPostBack.

Das Schicksal bevorzugt jene die bereit sind.

C
ChrisBa Themenstarter:in
54 Beiträge seit 2011
vor 13 Jahren

hab das ganze jetzt mal etwas anders geschrieben und denke dass es so auch funktioniert.


 public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Guid EindeutigeID = Guid.NewGuid(); //Erstellen einer eindeutigen Guid

            if (!Page.IsPostBack)
            {
                if (Request.Cookies ["BesucherCookie"] == null) //Kein Cookie vorhanden
                {
                    Response.Cookies["BesucherCookie"].Value = EindeutigeID.ToString(); //Erstellen des Cookies  
                    Label1.Text = EindeutigeID.ToString() + "  Hat ein neues Cookie";
                }
                else //Cookie vorhanden
                {
                    //Inhalt von Cookie in Session schreiben
                    Label2.Text = Request.Cookies["BesucherCookie"].Value + "  Hat ein altes Cookie";

                }

                if (Session["BesucherID"] == null) //Keine Session vorhanden
                {
                    Session["BesucherID"] = EindeutigeID.ToString(); //Session erstllen
                    Label3.Text = Session["BesucherID"].ToString() + "  hat eine neu Sassion";
                }
                else
                    Label3.Text = Session["BesucherID"].ToString() + "  hat eine alte Sassion";
            }

        }
    }

Das Schicksal bevorzugt jene die bereit sind.

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Du könntest Dir mal das sessionState-Element in der web.config anschauen.
Da gibt es das cookieless-Attribut mit verschiedenen Einstellungen, z.B. AutoDetect oder UseDeviceProfile.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

1.346 Beiträge seit 2008
vor 13 Jahren

zu der if-Schleife: http://if-schleife.de/