2011-06-14 23 views
10

क्या जब ASP.NET MVC में उस्तरा विचारों का उपयोग अपने वेब साइट भर में उपयोगकर्ता ट्रैकिंग लागू करने का सबसे अच्छा तरीका है 3.उपयोगकर्ता ASP.NET MVC 3 और उस्तरा विचारों के साथ ट्रैकिंग

webforms में मैं कुछ कोड में डाल दिया था एक कुकी का उपयोग करने के लिए मास्टरपेज और मेरी साइट पर प्रत्येक यूआरएल लॉग करें जो एक व्यक्ति डेटाबेस में जाता है, लेकिन मुझे यकीन नहीं है कि एएसपी.नेट एमवीसी में इस कोड को कहां कार्यान्वित किया जाए।

उत्तर

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 cuz आपने एक उदाहरण तैयार करने का समय लिया !! –

+1

बहुत बढ़िया, ठीक वही जो मैं खोज रहा था। किसी और के लिए चारों ओर देखकर, आप 'अनुरोध' और 'प्रतिक्रिया' सामान प्राप्त करने के लिए 'HttpContext' का उपयोग कर सकते हैं जिसे आप नियंत्रक में एक्सेस कर सकते हैं। 'Context.HttpContext.Request.Url'। मुझे लगता है कि आप यूआरएल आदि कैसे प्राप्त कर सकते हैं – TankorSmash

+0

स्ट्रिंग url = Request.RawUrl भी है; – JoshYates1980

5

मैं रेज़र विचारों के साथ इनमें से कोई भी नहीं करूँगा।

आप ActionFilter बनाना और इसे GlobalFilter के रूप में संलग्न करना चाहते हैं। इसे आपके लिए सभी काम करने दें।

More good reading...

+2

+1 क्योंकि आपने पढ़ने के लिए संदर्भ प्रदान किए हैं;) –

संबंधित मुद्दे