Pieni hittiseurantamoduuli .TEXT 0.95 -blogeille... (Suomi (Finnish))

Pieni hittiseurantamoduuli .TEXT 0.95 -blogeille...

Tuesday, 06 July 2004

//

1 minute read

Okei, hirveästi dokumentoitu, mutta se toimii...tämä on vain pienen HttpModulen lähde, joka osuu .TEXT-blogiin - aika yksinkertainen, mutta pitäisi antaa kaikille, jotka haluavat tehdä sen. Julkaisen jossain vaiheessa täydellisemmän version (lähinnä haluan vain testata, miten tämä iho käyttäytyy lähetetyllä koodilla ;-))

Järjestelmän käyttö;

System.Web:n käyttö;

Käyttämällä System.Dataa;

käyttää System.Data.SqlClient -järjestelmää;

Dottextin käyttö. Framework;

Käyttämällä System.Collections.Erityinen;

System.IO:n käyttö;

Käyttämällä System.Text;

Käyttämällä System.Xml.Serialisointia;

Käyttämällä System.Threading;

käyttää System.Netiä;

Microsoft.ApplicationBlocks.Data;

namespace ExtraControls

{

///

/// Yhteenveto kuvaus ViewTrackModulesta.

///

Yleisön luokka ViewTrackModule : IHttpModule

{

#alue IHttpModulen jäsenet

Julkisuustyhjiö Init(HttpApplication konteksti)

{

Context.EndRequest + = uusi EventHandler (konteksti)_EndRequest);

}

Julkinen tyhjiö Hävitä()

{

// TODO: Lisää ViewTrackModule.

}

#endregion

///

/// Okei, hieman epätavallista... mutta tarvitsen BlogConfig-objektin DB:n käyttöön...

///

///

///

yksityinen tyhjä konteksti_EndRequest(kohdelähettäjä, EventArgs e)

{

Http-sovellus httpApp = lähettäjä Http-sovelluksena;

Järjestelmä.Uri ur = httpApp.Request.UrlReferer;

JousitestiHost = jousi.Tyhjä;

String thisHost = httpApp.Request.ServerVariables["SERVERI_NAME"]

if(ur ! = nolla)

{

TestHost = ur.Host;

}

if(testHost!= thisHost)

{

HttpRequest re = httpApp.Request;

LogToDBDel del = uusi LogToDBDel (LogToDB);

IAsyncResult ar = del.BeginInvoke(re, null, null);

}

}

yksityinen valtuutettu mitätöi LogToDBDel-pyynnön (HttpRequest re)

Private Tyhjennä LogToDB(HttpRequest re)

{

merkkijono m_LiitäntäString = Dottext.Framework.Configuration.BlogConfigurationStrings.Instance().BlogProviders.DbProvider.ConnectionString;

String clientIP = re.UserHostAddress;

if( .asiakasIP.StartsWith('192.) && !asiakasIP.StartsWith('10.'))

{

String clientUserAgent = re.UserAgent;

String clientReferer = re.ServerVariables["HTTP_REFER"]

String clientHostName = string.Empty;

kokeile

{

clientHostName = Dns.GetHostByAddress(ClientIP).HostName;

}

Saaliit(Poikkeus)

{

clientHostName = re.UserHostName;

}

String clientQueryString = re.RawUrl;

SqlParametri[] sqlParams = SqlHelperParameterCache.GetSpParameterSet(m)_Liitä string, "pr_Blog_TallennaEntryStats"

SqlParams[0]Arvo = clientIP;

SqlParams[1]Arvo = clientUserAgent;

SqlParams[2.Arvo = clientHostName;

SqlParams[3.Arvo = clientQueryString;

SqlParams[4]Arvoisa = DateTime.Nyt;

SqlParams[5.Arvo = ClientReferer;

kokeile

{

SqlHelper.ExecuteNonQuery(m_LiitäntäString, Komentotyyppi.StoredProcedure, "pr_Blog_SaveEntryStats, sqlParams) ;

}

Saaliit(Poikkeus)

{

}

}

}

}

}

Kuten tavallista, tämä tarvitsee maininnan web.config-palveluun kytkeäkseen moduulin:

<httpModules> <Lisää nimi="RequestLogger" type="ExtraControls.ViewTrackModule, ExtraControls"/> <Modules-lehti kertoo:>

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.