我想爲我的MVC應用程序放置一些非常基本的Web跟蹤。我想在服務器端做到這一點,我想知道是否有人對我可以用來幫助我的一些簡單的類有所瞭解。任何人有任何建議我怎麼可以做服務器端的網頁跟蹤與MVC?
我想跟蹤以下內容:用戶的IP地址,他們請求的頁面,他們來自哪個國家以及DateTime郵票。
我想爲我的MVC應用程序放置一些非常基本的Web跟蹤。我想在服務器端做到這一點,我想知道是否有人對我可以用來幫助我的一些簡單的類有所瞭解。任何人有任何建議我怎麼可以做服務器端的網頁跟蹤與MVC?
我想跟蹤以下內容:用戶的IP地址,他們請求的頁面,他們來自哪個國家以及DateTime郵票。
是的,你可以在控制器爲每個請求攔截此:
如果你想在頁面的用戶請求:
Request.RawUrl //Gives the current and complete URL the user requested
如果您希望國家它是從,你的要求可以得到用戶的IP地址和then use a ready-made function to look up where it's from:
Request.UserHostAddress
您也可以獲取用戶傳入的所有路由值;以更全面地瞭解他們如何到達目的地。現在
public class MyController : Controller
{
public ActionResult Home()
{
var userIP = Request.UserHostAddress;
var requestedUrl = Request.UserHostAddress;
var routeValues = this.ControllerContext.RouteData.Route.GetRouteData(HttpContext);
var requestedDateTime = DateTime.Now;
}
}
,你必須把這個每個動作,這似乎傻了,所以why not have this happen for everything that's executed?
protected virtual void OnActionExecuting(
ActionExecutingContext filterContext)
{
var userIP = filterContext.HttpContext.Request.UserHostAddress;
var requestedUrl = filterContext.HttpContext.Request.UserHostAddress;
var routeData = ((MvcHandler)filterContext.HttpContext.CurrentHandler).RequestContext.RouteData.Route.GetRouteData(filterContext.HttpContext);
var requestedDateTime = DateTime.Now;
}
巨大的幫助。非常感謝 – Marie
你想追蹤什麼?錯誤?服務電話?你的意思是跟蹤?需要更多關於此的信息 – stack72
對不起,我沒有添加足夠的信息。我想跟蹤的是頁面請求。跟蹤請求的頁面和請求的國家以及日期。 – Marie