前言:
本篇将使用2.n系列版本,在不改動原來留言版系統一行代碼的情況下,實作其資料庫記錄檔功能。
正文步驟:
一:建表
1:增加一個日志操作表[actionlogs],這個少不了,表結構如下:
2:建立表的資料庫腳本如下:
建立actionlogs表
二:建類庫項目獨立實作記錄檔
1:建立一個項目類庫起名就叫:aoplog,同時添加對cyq.data.dll的引用[2.n系列版本]
2:建立一個類,繼承自cyq.data.aop.iaop接口,并實作之如:
public class aoplog : iaop
{
#region iaop 成員
public void begin(aopenum action, string objname, params object[] aopinfo)
{
//這裡先沒用到,用于權限判斷
}
public void end(aopenum action, bool success, object id, params object[] aopinfo)
//這裡等會要實作
public iaop getfromconfig()
return null;//預設這樣就行了
public void onerror(string msg)
//這裡先沒用到,資料庫操作異常時引發
#endregion
}
3:我們将具體實作分流到另一個類處理:建立類:actionlog.cs,并預先留下方法接口:
public class actionlog
{
public void writefill(object id)
public void writeinsert(object id)
{
#region 其它方法
private int getuserid()
private void write(object id, string msg)
{
private bool containurl(string key)
{
#endregion
}
4:回到aoplog實作方法
aoplog 實作 隻是添加了一個構造函數和實作end方法
5:實作actionlog方法
a:從session擷取使用者id
private int getuserid()
int id=0;
if (httpcontext.current.session["id"] != null)
{
int.tryparse(convert.tostring(httpcontext.current.session["id"]), out id);
}
return id;
b:插入表資料方法封裝
private void write(object id,string msg)
int userid = getuserid();
if (userid == 0)
int.tryparse(convert.tostring(id), out userid);
if (userid > 0)
maction action = new maction(tablenames.actionlogs);
action.setnoaop();//寫日志時,注意關掉aop功能。
action.set(actionlogs.userid, userid);
action.set(actionlogs.msg, msg);
action.insert();
action.close();
c:檢測url是否包含指定字元
private bool containurl(string key)
return system.web.httpcontext.current.request.url.tostring().tolower().contains(key);
d:實作登陸日志記錄
public void writefill(object id)
if (containurl("login.aspx"))
write(id,"登陸成功!");
e:實作注冊日志與留言日志記錄
public void writeinsert(object id)
if (containurl("reg.aspx"))
write(id,"注冊成功!");
else
write(id,string.format("添加一行留言[id={0}]!",id));//需要啟用更多分支時,請使用"params object[] aopinfo資訊[這個需要修改界面參數代碼]"
三:切入原有留言版系統
1:将類庫生成的aoplog.dll放到留言系統的bin目錄下
2:更新原來cyq.data.dll的1.2版本到最新版本。[完全相容,直接涵蓋更新]
3:配置檔案appsettings項增加一行配置:<add key="aop" value="aoplog,aoplog.aoplog"/>
四:運作結果
1:操作登陸、注冊、留言!!!資料庫記錄結果如下圖:
五:示例下載下傳
版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:
http://www.cnblogs.com/cyq1162/archive/2010/10/08/1845708.html