OK, vreselijk gedocumenteerd, maar het werkt...dit is gewoon de bron voor een beetje HttpModule die tracks hits naar een .TEXT blog - vrij eenvoudig maar moet iedereen die wil het een start te geven. Ik zal een meer complete versie op een bepaald punt plaatsen (hoofdzakelijk willen testen hoe deze huid zich gedraagt met geposte code;-))
gebruik van systeem;
gebruik van System.Web;
gebruik van System.Data;
gebruik van System.Data.SqlClient;
gebruik van Dottext.Framework;
het gebruik van System.Collecties.Gespecialiseerd;
gebruik van System.IO;
gebruik van System.Text;
gebruik van System.Xml.Serialization;
gebruik van System.Threading;
gebruik van System.Net;
gebruik van Microsoft.ApplicationBlocks.Data;
namespace ExtraControls
{
///
/// Samenvatting beschrijving voor ViewTrackModule.
///
publieke klasse ViewTrackModule: IHttpModule
{
#region IHttpModule Members
publieke leegte Init(HttpApplication context)
{
context.EndRequest += nieuw EventHandler(context_EndRequest);
}
openbare leegte Gooien()
{
// TODO: Toevoegen ViewTrackModule.Verwijder implementatie
}
#endregion
///
/// Oké, beetje ongebruikelijk...maar ik heb het BlogConfig object nodig om beschikbaar te zijn voor de DB toegang...
///
///
///
privaat ongeldige context_EndRequest(object afzender, EventArgs e)
{
HttpApplication httpApp = sender as HttpApplication;
System.Uri ur = httpApp.Request.UrlReferrer;
string testHost = string.Leeg;
string thisHost = httpApp.Request.ServerVariables["SERVER_NAME"];
if(ur != null)
{
testHost = ur.Host;
}
if(testHost != thisHost)
{
HttpRequest re = httpApp.Request;
LogToDBDel = nieuwe LogToDBDel(LogToDB);
IAsyncResult ar = del.BeginInvoce(re,null,null);
}
}
particuliere gedelegeerde ongeldig LogToDBDel(HttpRequest re);
privé leegte LogToDB(HttpRequest re)
{
tekenreeks m_connectieString = Dottext.Framework.Configuration.BlogConfiguratieInstellingen.Instance().BlogProviders.DbProvider.ConnectionString;
string clientIP = re.UserHostAddress;
if(!clientIP.StartMet("192.") && !clientIP.StartMet("10."))
{
string clientUserAgent = re.UserAgent;
string clientReferer = re.ServerVariables["HTTP_REFERER"];
string clientHostName = string.Leeg;
proberen
{
clientHostName = Dns.GetHostByAddress(clientIP).HostName;
}
vangst(uitzondering)
{
clientHostName = re.UserHostName;
}
string clientQueryString = re.RawUrl;
SqlParameter[] sqlParams = SqlHelperParameterCache.GetSpParameterSet(m_Verbinding string, "pr_Blog_SaveEntryStats");
sqlParamsunit synonyms for matching user input[0].Value = clientIP;
sqlParamsunit synonyms for matching user input[1].Value = clientUserAgent;
sqlParamsunit synonyms for matching user input[2].Value = clientHostName;
sqlParamsunit synonyms for matching user input[3].Value = clientQueryString;
sqlParamsunit synonyms for matching user input[4].Value = DateTime.Nu;
sqlParamsunit synonyms for matching user input[5].Value = clientReferer;
proberen
{
SqlHelper.executeNonQuery(m_Verbinding string, CommandType.OpgeslagenProcedure, "pr_Blog_SaveEntryStats" , sqlParams) ;
}
vangst(uitzondering)
{
}
}
}
}
}
Zoals gewoonlijk heeft dit een item in het web.config nodig om te haaken in de module:
<httpModules> <voeg naam="RequestLogger" type="ExtraControls.BekijkTrackModule, ExtraControls"/> <http://Modules>
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.