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 / Tips & tricks

#2350 - Lista aktuella användare på din sida

Postat 2008-07-04 15:43:28 av Tyronne Engström i Kategori Programmering, C#, Kommandon med 0 Kommentarer

För att testa detta exempel så skapar du ett nytt webprojekt. Om det inte redan finns en Default.aspx så skapar du den.

Det första vi skall gör är att lägga till följande i web.config




Där efter skall vi skapa en klass fil som innehåller en del viktiga fuktioner. Skapa en ny klass fil och döp den till WebsiteVisitor.cs.

Sedan öppnar du den och fyller i följande kod.

namespace Roboblob.Utility

{
public class WebsiteVisitor
{
private string sessionId;
public string SessionId
{
get { return sessionId; }
set { sessionId = value; }

}

public string IpAddress
{
get { return ipAddress; }
set { ipAddress = value; }
}

private string ipAddress;

public string UrlReferrer
{
get { return urlReferrer; }
set { urlReferrer = value; }
}

private string urlReferrer;

public string EnterUrl
{
get { return enterUrl; }
set { enterUrl = value; }
}

private string enterUrl;

public string UserAgent
{
get { return userAgent; }
set { userAgent = value; }
}

private string userAgent;

public DateTime SessionStarted
{
get { return sessionStarted; }
set { sessionStarted = value; }
}

private DateTime sessionStarted;

public WebsiteVisitor(HttpContext context)
{
if ((context != null) && (context.Request != null) && (context.Session != null) )
{
this.sessionId = context.Session.SessionID;
sessionStarted = DateTime.Now;
userAgent = string.IsNullOrEmpty(context.Request.UserAgent) ? "" : context.Request.UserAgent;
ipAddress = context.Request.UserHostAddress;

if (context.Request.UrlReferrer != null)
{
urlReferrer = string.IsNullOrEmpty(context.Request.UrlReferrer.OriginalString) ? "" : context.Request.UrlReferrer.OriginalString;
}

enterUrl = string.IsNullOrEmpty(context.Request.Url.OriginalString) ? "" : context.Request.Url.OriginalString;

}
}
}
}


Nu skall vi skapa en Global collection där vi kommer att lagra våra aktiva WebsiteVisitor objekt:



public static class OnlineVisitorsContainer
{
public static Dictionary Visitors = new Dictionary();
}


För att göra den tillgänglig på alla sidorna så lägger vi in public static class i överst på WebsiteVisitors.cs klassen.

klassen skall då se ut så här:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;

namespace Roboblob.Utility
{
public class OnlineVisitorsUtility
{
public static Dictionary Visitors = new Dictionary();
}

///


/// Summary description for WebsiteVisitor
///

public class WebsiteVisitor
{
private string sessionId;
public string SessionId
{
get { return sessionId; }
set { sessionId = value; }
}

///
/// UserIp Property
///

public string IpAddress
{
get { return ipAddress; }
set { ipAddress = value; }
}
private string ipAddress;

///
/// UrlReferrer Property
///

public string UrlReferrer
{
get { return urlReferrer; }
set { urlReferrer = value; }
}
private string urlReferrer;

///
/// EnterUrl Property
///

public string EnterUrl
{
get { return enterUrl; }
set { enterUrl = value; }
}
private string enterUrl;


///
/// HostName Property
///

public string HostName
{
get { return hostName; }
set { hostName = value; }
}
private string hostName;

///
/// UserAgent Property
///

public string UserAgent
{
get { return userAgent; }
set { userAgent = value; }
}
private string userAgent;

///
/// SessionStarted Property
///

public DateTime SessionStarted
{
get { return sessionStarted; }
set { sessionStarted = value; }
}
private DateTime sessionStarted;


public WebsiteVisitor(HttpContext context)
{
if ((context != null) && (context.Request != null) && (context.Session != null))
{
this.sessionId = context.Session.SessionID;
sessionStarted = DateTime.Now;
userAgent = string.IsNullOrEmpty(context.Request.UserAgent) ? "" : context.Request.UserAgent;
ipAddress = context.Request.UserHostAddress;
if (context.Request.UrlReferrer != null)
{
urlReferrer = string.IsNullOrEmpty(context.Request.UrlReferrer.OriginalString) ? "" : context.Request.UrlReferrer.OriginalString;
}
enterUrl = string.IsNullOrEmpty(context.Request.Url.OriginalString) ? "" : context.Request.Url.OriginalString;
}
}

}
}


Då skall vi jobba lite i Global.asax . Om du inte har en sådan så skapar du den. Du hittar den om du högerklickar i solution explorer och väljer "add new item"

Lägg till följande i global asax:

<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="Roboblob.Utility" %>

//Här är koden när sessionen startar, dvs när användar anländer till sidan.

void Session_Start(object sender, EventArgs e)
{
// add some data to the Session so permanent SessionId is assigned
// otherwise new SessionId is assigned to the user until some data
// is actually written to Session
Session["Start"] = DateTime.Now;

// get current context
HttpContext currentContext = HttpContext.Current;

if (currentContext != null)
{
if (!OnlineVisitorsContainer.Visitors.ContainsKey(currentContext.Session.SessionID))
{
WebsiteVisitor currentVisitor = new WebsiteVisitor(currentContext);
OnlineVisitorsContainer.Visitors.Add(currentVisitor.SessionId, currentVisitor);
}
}
}



//Nu till Session_End event handler code:


void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate mode
// is set to InProc in the Web.config file. If session mode is set to StateServer
// or SQLServer, the event is not raised.

if (this.Session != null)
OnlineVisitorsContainer.Visitors.Remove(this.Session.SessionID);
}



Då är den mesta koden gjord. Då är det dags att öppna Default.aspx.

Lägg till en Gridview på sidan. Byt sedan till "Source" -läge för att se HTML koden. Uppdatera gridviewn enl nedan.

CellPadding="2" ForeColor="#333333" GridLines="Both" >





<%# ((DateTime)Eval("SessionStarted")).ToString("dd/MM/yyyy HH:mm:ss") %>





<%# Eval("IpAddress") %>





<%# Eval("UserAgent") %>

<%# Eval("EnterUrl") %>


NavigateUrl='<%# Eval("UrlReferrer") %>' runat="server" Target="_blank" />










Och nu måste vi binda vår Globala Collection från OnlineVisitorsContainer class till the GridVIew control:

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (OnlineVisitorsContainer.Visitors != null)
{
gvVisitors.DataSource = OnlineVisitorsContainer.Visitors.Values;
gvVisitors.DataBind();
}
}
}


Starta projekt och titta själv

Sample:
Size:

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 277
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