Полагаю, лучший способ сделать это - создать глобальный фильтр действий и отслеживать там посещения.
Создать атрибут фильтра действий:
public class UserTrackingActionFilterAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext context)
{
base.OnResultExecuting(context);
//save url, userId from session, etc...
}
}
Зарегистрировать его как глобальный.фильтр в глобальном asax:
protected void Application_Start()
{
// Register global filter
GlobalFilters.Filters.Add(new UserTrackingActionFilterAttribute());
RegisterGlobalFilters(GlobalFilters.Filters);
}
Вот и все.Nice