Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Hantera sessionsvariabler i ASP.NET # 1

Postad 2002-05-17 av Tommy Winberg i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 4528, Betyg: 0%

Förord

Behovet av att hantera information om en besökare över flera sidor, en session eller vid återkommande besök har de flesta sajter som inte bara är en ren presentationssida. Hanteringen av cookies och sessionsvariabler är inte olik den i traditionell ASP. Denna artikelserie går igenom hur man kan skapa ett system för att hantera dessa variabler smidigt och som i sidklasserna är oberoende av lagring. Dessutom hjälper kompilatorn dig att upptäcka fel i koden.
Innehåll
  » Det traditionella sättet
  » Ett steg tillbaks
  » Åtkomst till WebVisitor instanser
  » Basklassen
  » Codebehind klasserna
  » Nästa steg...
  » Fil att tanka


Det traditionella sättet

Cookies och sessionvariabler är inte precis någon nyhet i ASP.NET. Det går att använda dem ungefär som i traditionell ASP.


Response.Cookies.Add(New HttpCookie("UserName", userNameString))
userNameString = Request.Cookies("UserName").Value

Session("UserName") = userNameString
userNameString = CType(Session("UserName"), String)

När ditt projekt växer och kanske flera programmerare är inblandade blir det bökigt att hålla reda på var och hur variablerna används. Det är inte lämpligt att peta in kod som i ovanstående exempel i sidor här och där. I bästa fall kanske du i traditionell ASP använt dig av inkluderade filer eller en komponent som exponerat värdena.


Ett steg tillbaks

I denna del av artikeln bortser vi från lagring informationen mellan http anropen. Vårt behov är att på ett smidigt sätt kunna läsa och skriva variabler. Vi skapar en klass i vårt webbprojekt eller annat projekt som webbprojektet har en referens till.


Public Class WebVisitor

Public Const ContextKey As String = "WebVisitor"

Private mFirstName As String
Private mLastName As String

Public Property FirstName() As String
Get
Return mFirstName
End Get
Set(ByVal Value As String)
mFirstName = Value
End Set
End Property


Public Property LastName() As String
Get
Return mLastName
End Get
Set(ByVal Value As String)
mLastName = Value
End Set
End Property

Public Function FullName() As String
Return FirstName & " " & LastName
End Function

End Class

Attributet Serializable anger att klassen kan serialiseras, dvs sparas till sträng, fil etc. För övrigt så kapslas medlemsvariabler in och exponeras som egenskaper i klassen.


Åtkomst till WebVisitor instanser

För att få smidig åtkomst till besökarens instans av WebVisitor klassen kan vi skapa en basklass för alla våra webbsidesklasser i projektet.


Basklassen

I basklassen skapar vi åtkomst till WebVisitor instansen med Visitor egenskapen. I detta fall hämtas instansen från sessionsobjektet.


Public Class PageBase

Inherits System.Web.UI.Page

Protected ReadOnly Property Visitor() As WebVisitor
Get
Return CType(Session(WebVisitor.ContextKey), WebVisitor)
End Get
End Property

End Class

Basklassen kan även användas för att implementera andra metoder som kommer användas återkommande.


Codebehind klasserna

Alla sidor i ditt webbprojekt som kan tänkas behöva åtkomst till sessionsvariabler skall ändras. Efter ändringen kontrolleras dessutom åtkomsten till variablerna av kompilatorn, det blir lätt att finna felen.


Public Class TestPage

'Inherits System.Web.UI.Page
Inherits PageBase

Protected WithEvents fullNameLabel As System.Web.UI.WebControls.Label

Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

fullNameLabel.Text = Visitor.FullName

End Sub

...

End Class

Visitor egenskapen kan även användas direkt i aspx-filen.


Nästa steg...

Eller kanske snarare steget före. I nästa avsnitt går vi igenom hur denna lösning implementeras med hjälp av Session objektet. Avsnittet därpå lagrar informationen i en cookie och kan därmed köras utan sessioner.


Fil att tanka

Fil: sessionvar.zip
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
1 076
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies