使用sqlserver + EF + Linq 記錄訪客登錄基本信息
首先建一個sql表,具體記哪些信息就建什麼字段吧,我生成的model如下
public class InfoLog
{
#region Model
private int _id;
private string _uid;
private string _vistip;
private DateTime _visttime;
private string _browser;
private string _browserversion;
/// <summary>
///
/// </summary>
public int ID
{
set { _id = value; }
get { return _id; }
}
/// <summary>
///
/// </summary>
public string UID
{
set { _uid = value; }
get { return _uid; }
}
/// <summary>
///
/// </summary>
public string VistIP
{
set { _vistip = value; }
get { return _vistip; }
}
/// <summary>
///
/// </summary>
public DateTime VistTime
{
set { _visttime = value; }
get { return _visttime; }
}
/// <summary>
///
/// </summary>
public string Browser
{
set { _browser = value; }
get { return _browser; }
}
/// <summary>
///
/// </summary>
public string BrowserVersion
{
set { _browserversion = value; }
get { return _browserversion; }
}
#endregion Model
}
添加信息方法
private void VisitLog()
{
try
{
InfoLog logModel = new InfoLog();
logModel.Browser = Request.Browser.Browser;
logModel.BrowserVersion = Request.Browser.Version;
logModel.UID = Request.Url.Query.ToUpper();
logModel.VistIP = GetIp();
logModel.VistTime = DateTime.Now;
exec.SaveVistLog(logModel);
}
catch (Exception ex)
{
//GoToInfoPage("應用程序錯誤,信息:" + ex.ToString());
}
}
private string GetIp()
{
//可以隔過代理IP獲得真實IP
string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
//沒有代理服務器,如果有代理服務器獲取的是代理服務器的IP
if (userIP == null || userIP == "")
{
userIP = Request.ServerVariables["REMOTE_ADDR"];
}
return userIP;
}