Отслеживание пользователей с помощью ASP.NET MVC 3 и просмотров бритвы

Какой лучший способ реализовать отслеживание пользователей на вашем веб-сайте при использовании представлений Razor в ASP.NET MVC 3.

В веб-формах я бы поставил некоторый код на главной странице, чтобы использовать файл cookie и регистрировать каждый URL-адрес моего сайта, который посещает человек в базе данных, но я не уверен, где реализовать этот код в ASP.NET MVC.

Ответ 1

Я думаю, лучший способ сделать это - создать Глобальный фильтр действий и отслеживать посещения там.

Создайте атрибут фильтра действий:

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);
}

Это все. Ницца?