# Μικρό ίχνος παρακολούθηση ενότητα για .TEXT ΜSK1 blogs...

<datetime class="hidden">2004-07-06T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
OK, μπορεί να τεκμηριωθεί τρομεράΜSK1 αλλά λειτουργεί...αυτό είναι μόνο η πηγή για ένα μικρό HttpModule που παρακολουθεί τα χτυπήματα σε μια M SK3TEXT blog Η - αρκετά απλή, αλλά θα πρέπει να δώσει σε όποιον θέλει να το κάνει ένα ξεκίνημαΗ ΜSK5Θα θέλω την ' θα δημοσιεύσει μια πιο ολοκληρωμένη έκδοση σε κάποιο σημείο Η (σχεδόν απλά θέλουν να δοκιμάσουν πώς αυτή η επιδερμίδα συμπεριφέρεται με τον κώδικα που αναρτήθηκε η ;-))

Χρησιμοποιώντας το σύστημα;

Χρησιμοποιώντας το σύστημα.Web;

Χρησιμοποιώντας το Σύστημα.Διαγραφή δεδομένωνΜSK1

Χρησιμοποιώντας το Σύστημα.Προσωπικά δεδομένα.SqlClientM SK2

Χρησιμοποιώντας το Dottext.FrameworkΜSK1

Χρησιμοποιώντας το Σύστημα.ΚολέσειςΜSK1Εκείμενα ειδικευμένα;

Χρησιμοποιώντας το σύστημα.IO;

Χρησιμοποιώντας το Σύστημα.Text;

Χρησιμοποιώντας το Σύστημα.Xml.ΣεριοποίησηM SK2

Χρησιμοποιώντας το Σύστημα.Επεξεργασία;

Χρησιμοποιώντας το σύστημα.Net;

Χρησιμοποιώντας το Microsoft.ApplicationBlocks.ΠληροφορίεςΜSK2

Ετικέτες ExtraControls

{

///

/// Συνοπτική περιγραφή για ViewTrackModule.

///

δημόσια τάξη ViewTrackModule : IHttpModule

{

#περιφέρεια IHttpΜεταίροι

Δημόσιο κενό Init(HttpΕφαρμοστικό πλαίσιο)

{

Περιεχόμενο.EndRequest ΜSK1 νέα EventHandler(context\_EndRequestΜSK1

}

Δημόσιο κενό Διαθέσιμο()

{

// TODO : Προσθήκη ViewTrackModule.Εμφάνιση εφαρμογής

}

ΜΣΚ0ενδρική περιοχή

///

/// Ok, λίγο ασυνήθιστοM SK2αλλά χρειάζομαι το αντικείμενο BlogConfig να είναι διαθέσιμο για την πρόσβαση DBΜSK3

///

///

///

ιδιωτικό κενό πλαίσιο\_EndRequest(object αποστολέαςM SK2 EventArgs eMK3

{

HttpApplication httpApp = αποστολέας ως HTTPApplication;

Συστήματα.Uri ur =HTTPAppM SK2ΑναζητήστεΜSK3UrlReferrerMK4

Σύνδεσμος δοκιμήHost =Σύνδεση συνδέσμου.ΕλεύθεροΜSK2

string thisHost = httpApp.RequestMK2ServerVariables[" διακομιστής\_NAMEΜSK1

Εάν (ur ΜSK1 null ΜSK2

{

testHost = urΜSK1Host;

}

Εάν (testHost ΜSK1 thisHost)

{

HttpRequest re =HTTPAppΜSK1Αναζητήστε;

LogToDBDel del = νέα LogToDdel(LogToDBM SK2

IAsyncResult ar = delΜSK1BeginInvokeM SK2,nullMK4nollMST5

}

}

Ιδιωτικό αντιπρόσωπο κενό LogToDBDel(HttpRequest re);

Ιδιωτικό κενό LogToDB(HttpRequest re)

{

Σύνδεσμος M\_συνδεσιμότηταString ΜSK1Dottext.FrameworkM SK3ConfigurationMK4BlogConfigureSettingsMSKA5InstanceMKA6BlogProvidersMSKI7DbProviderMKI8ConnectionStringMRK9

Σύνδεσμος clientIP = reΜSK1UserHostAddress;

Εάν (!clientIP.StartsΜαζί με το ("192.") ΜSK3 ΜSK4ClientIP .StartWithMK6

{

Σύνδεσμος clientUserAgent = reΜSK1Ο χρήστηAgent;

Σύνδεσμος clientReferer = reΜSK1ServerVariables["HTTP\_ΕπεξεργασίαΜSK1

Σύνδεσμος clientHostName =ΣύνδεσηΜSK1Ελεύθερο;

Δοκιμάστε

{

clientHostName = ΔΝΣΜSK1GetHostByAddress(clientIPM SK3Ορισμός

}

Εξαίρεση )

{

clientHostName = reΜSK1UserHost Name;

}

Σύνδεσμος clientQueryString = reΜSK1RawUrl;

ΠΑΡΑΜΑΙΤΕΡ[] sqlParams = SqlHelperParameterCache.GetSpParametrSetM SK3m\_σύνδεσηStringΜSK1  ΜSK2prΕτικέτες Blog\_SaveEntryStatsΜSK1 

ΣΧΕΔΙΟ[0].Αξιολόγηση ΜSK1 clientIP ΜSK2

ΣΧΕΔΙΟ[1].Αξιολόγηση ΜSK1 clientUserAgent;

ΣΧΕΔΙΟ[2].Αξιολόγηση ΜSK1 clientHostName ΜSK2

ΣΧΕΔΙΟ[3].Αξία ΜSK1 clientQueryString ΜSK2

ΣΧΕΔΙΟ[4].Αξιολόγηση ΜSK1 DateTime ΜSK2Τώρα ΜΣΚ3

ΣΧΕΔΙΟ[5].Αξιολόγηση ΜSK1 clientReferer ΜSK2

Δοκιμάστε

{

SqlHelper.ExecuteNonQuery(m\_σύνδεσηStringΜSK1 CommandType.StoredProcedureM SK3MK4prΕτικέτες BlogΜΣΚ0SaveEntryStats", sqlParams ΜΣΚ2

}

Εξαίρεση )

{

}

}

}

}

}

Όπως συνήθως, αυτό χρειάζεται μια είσοδο στο webΜSK1config για να χτυπήσει στην ενότητα:

&lt;HTTP Μοντέλα&gt;
&lt;Προσθήκη ονόματος="RequestLoggerΜSK1 τύπου="ExtraControlsM SK3ViewTrackModuleMK4 ExtraControl&gt;
&lt;/httpModules&gt;