سؤال

هل هناك استراتيجية جيدة للدخول في نشاط المستخدم على ASP MVC التطبيقات؟ (ActionFilters / HTTPModules).

وشيء من هذا القبيل النشاط الأخير المستخدم (مثل ستاكوفيرفلوو "تواجد منذ 23 دقيقة")، وحتى ما تم استخدام الصفحات وتحكم، ويدفع إلى أبعد من ذلك هي الأزرار أو الروابط التي نقر فيها.

ولدي ELMAH تثبيت ولكن بقدر ما أنا أعلم به فقط من أجل تسجيل خطأ.

وPD: جوجل تحليلات ليس خيارا

.
هل كانت مفيدة؟

المحلول

هل يمكن أن حاول استخدام PostSharp الجانب لأداء قطع الأشجار بالنسبة لك، انها وظائف متعددة الزهر قد تأتي في متناول اليدين لشيء من هذا القبيل. إذا كان هذا ليس خيارا، ثم وحدة نمطية ربما يكون أسهل للتنفيذ (على افتراض يمكنك الحصول على معلومات المستخدم المطلوبة في تلك المرحلة في طور الإعداد).

نصائح أخرى

<اقتباس فقرة>   

تحذير: كتب هذا في عام 2009 لMVC. NET RC1 وقد لا تكون صحيحة نحويا بعد الآن

العمل مرشح سمات هي مثالية لهذا، وضعت للتو مكالمة إلى [YourAttributeName] في الجزء العلوي من جهاز تحكم (أو إذا كان لديك وحدة تحكم التطبيق التي ترث وحدات التحكم الأخرى الخاصة بك من، كنت في حاجة إليها مرة واحدة فقط في التطبيق الخاص بك).

وعلى سبيل المثال:

namespace the_name_space
{
    [Log]
    public class ApplicationController : Controller
    {

ومن هذه النقطة فصاعدا سوف يطلق هذه السمة قبل تشغيل كل عمل في وحدة التحكم الخاصة بك (ق)، يمكنك أيضا تحديد هذا على مجرد العمل من خلال الدعوة [Log] قبل ذلك بنفس الطريقة.

لتحصل على وظيفة تسجيل التي تحتاجها، فإنك على الأرجح تريد تجاوز OnResultExecuting وOnResultExecuted، وكلاهما جميلة النفس التفسيرية.

وعلى سبيل المثال:

public class LogAttribute : ActionFilterAttribute
{
    protected DateTime start_time;

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        start_time = DateTime.Now;
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        RouteData route_data = filterContext.RouteData;
        TimeSpan duration = (DateTime.Now - start_time);
        string controller = (string)route_data.Values["controller"];
        string action = (string)route_data.Values["action"];
        DateTime created_at = DateTime.Now;
        //Save all your required values, including user id and whatnot here.
        //The duration variable will allow you to see expensive page loads on the controller, this can be useful when clients complain about something being slow.
    }
}

وأنا فقط تعثر على هذه الوظائف 2 من ريون وليامز التي تصف بطريقة واضحة جدا للقيام بذلك:

تنفيذ مسارات التدقيق باستخدام ASP.NET MVC ActionFilters

<وأ href = "http://rionscode.wordpress.com/2013/04/15/creating-advanced-audit-trails-using-actionfilters-in-asp-net-mvc/" يختلط = "noreferrer" > إنشاء مسارات المراجعة المتقدمة باستخدام ActionFilters في ASP.NET MVC

وظيفة متقدمة كبيرة حقا كما يمكنك تخزين البيانات على طلب ومزيد من تصفية تلك البيانات.

وأنا إعمال هذا الحق الآن في بلدي التطبيق.

و @فكرة روري هي الممتازة. PostSharp هو بالضبط ما كنت بحاجة لهذا، قد تفكر في اقتران مع ASP.net رصد الصحة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top