2011-06-14 5 views
10

은 무엇 ASP.NET MVC에서 면도기 뷰를 사용하면 웹 사이트를 통해 사용자 추적을 구현하는 가장 좋은 방법입니다 웹 양식 3.사용자

나는 몇 가지 코드를 넣어 것 masterpage 쿠키를 사용하고 사람이 데이터베이스에서 방문하는 내 사이트의 각 URL을 기록하지만 ASP.NET MVC에서이 코드를 어디에서 구현해야하는지 모르겠습니다.

답변

20

이 작업을 수행하는 가장 좋은 방법은 글로벌 액션 필터를 만들고 거기에 방문을 추적하는 것입니다.

는 액션 필터 속성을 만듭니다

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

합니다. 좋은?

+0

+1 예를 들어 초안을 작성하는 데 시간이 걸렸습니다. –

+1

엄청나게 내가 찾고있는 것. 주변을 둘러 보는 다른 사람들을 위해,'HttpContext'를 사용하여 컨트롤러에서 접근 할 수있는'Request'와'Response' 물건을 얻을 수 있습니다. 'context.HttpContext.Request.Url'. URL 등을 얻을 수있는 방법이 있다고 가정합니다. – TankorSmash

+0

string url = Request.RawUrl; – JoshYates1980

5

면도기 뷰로는 아무 것도하지 않습니다.

ActionFilter을 작성하고 GlobalFilter으로 첨부 할 수 있습니다. 그것은 당신을 위해 모든 일을하게하십시오.

More good reading...

+2

+1에 대한 참조를 제공했기 때문에 +1) –

관련 문제