نمایش نتایج 1 تا 7 از 7

نام تاپیک: اجرای یک تابع ASP.Net از طریق JavaScript

  1. #1

    Question اجرای یک تابع ASP.Net از طریق JavaScript

    می‌خوام وقتی یک نفر از سایت بازدید می‌کنه، شناسایی بشه (مرورگر، referrer و ...)
    توی global.asax این کار رو کردم.
    کسی که به www.sitename.com بیاد، شناسایی می‌شه و به صفحه پیش‌فرض می‌ره.

    اما مشکل اینجاست که این سایت صفحاتی غیر از aspx هم داره. (مثلاً html)
    و بازدید کننده ممکنه مستقیم به www.sitename.com/filename.html بره.

    با توجه به اینکه از فضای اشتراکی استفاده می‌کنم به IIS دسترسی ندارم که بتونم تنظیم کنم هنگام اجرای html فایل session_start مربوط به global.asax رو اجرا کنه.

    تازه ممکنه توی سایت غیر از صفحات html صفحات دیگه‌ای مثل php هم باشه.

    آیا می‌شه از جاوا اسکریپت جوری استفاده کرد که session_start رو صدا بزنه؟
    و یا اینکه یک کد جاوا اسکریپت که اونو توی هر فایلی بذاریم یک تابع از یک فایل asp.net رو اجرا کنه.

    طبیعتاً مورد دوم باید بشه، اگه ایده یا منبعی دارین لطفاً معرفی کنید که پایان نامه‌ی بنده توی این قسمت گیره و دو-سه روز دیگه بیشتر مهلت ندارم.

    متشکرم
    آخرین ویرایش به وسیله صابر : سه شنبه 16 اسفند 1384 در 08:11 صبح

  2. #2
    ISAPI تنها برای فایل های ساپورت شده توسط ASP.NET فراخونی میشه.
    فایل های aspx، ascx و asmx از این دست فایل ها هستند.
    تنها راه، دسترسی به IIS هاست و مپ کردن پسوند مورد نظر با ISAPI است.

    آیا می‌شه از جاوا اسکریپت جوری استفاده کرد که session_start رو صدا بزنه؟
    ایده ی جالبی نیست اما میتونی از XMLHTTP استفاده کنی.

    موفق باشید.

  3. #3
    نقل قول نوشته شده توسط Behrouz_Rad
    ...ایده ی جالبی نیست اما میتونی از XMLHTTP استفاده کنی.
    از جوابتون متشکرم. اما از XMLHTTP طبیعتاً باید توی صفحاتی که توسط ASP.Net ساپورت می‌شن استفاده کرد دیگه؟
    اگه صفحه مورد نظر HTML یا PHP بود چی؟
    به نظر شما در چنین مواقعی تنها راه استفاده از JavaScipt نیست؟

  4. #4
    اما از XMLHTTP طبیعتاً باید توی صفحاتی که توسط ASP.Net ساپورت می‌شن استفاده کرد دیگه؟
    اگه صفحه مورد نظر HTML یا PHP بود چی؟
    به نظر شما در چنین مواقعی تنها راه استفاده از JavaScipt نیست؟
    دوست عزیزم!
    جاوا اسکریپت ذاتا برای کار با XMLHTTP به وجود اومده.
    دقیقا همون کاری که با تکنیک AJAX انجام می پذیره، با استفاده از XMLHTTP هست!
    زمانی که درخواست پردازشی برای سرور ارسال می کنید، روال Begin_Request فراخونی میشه؛ در نتیجه، با ایجاد یک شی XMHTTP و ارسال درخواست پردازش صفحه ی مورد نظر به سرور، روال مذکور فراخوانی شده و کلیه ی دستورات نوشته شده در آن (شامل اخذ و ذخیره ی اطلاعات REFERER) اجرا می شوند.

    بگذار جور دیگه ای بیان کنم.
    جاوا اسکریپت، زبان مکملی هست، که به زبان Server-Side استفاده شده، ارتباطی نداره.
    جاوا اسکریپت، همراه با کدهای HTML فراخونی شده و وظیفه ی محوله رو انجام میده.
    فرض کن کاربری قصد بازدید صفحه ی HTML ای از سایت تو رو داشته باشه.
    یک تابع جاوا اسکریپت می نویسی، که با ایجاد یک شی XMLHTTP، درخواستی رو به یک صفحه ی aspx، ارسال کنه.
    زمانی که درخواست پردازشی به سرور رسید، پسوند فایل درخواست شده، توسط ISAPI (موتور پردازشگر ASP.NET)، بررسی میشه. پسوند فایل، aspx تشخیص داده میشه. پس فایل، به منظور پردازش، به لایه ی پردازش ارسال میشه.
    طبعا، این پردازش، شامل پردازش روال های فایل Global.asax نیز خواهد بود.
    دستورات بازیابی اطلاعات REFERER رو در روال Begin_Request این فایل بنویس.

    موفق باشید.

  5. #5
    متشکرم :)
    این کار رو امتحان می‌کنم و نتیجه رو می‌گم.

  6. #6
    نقل قول نوشته شده توسط Behrouz_Rad
    ..
    زمانی که درخواست پردازشی به سرور رسید، پسوند فایل درخواست شده، توسط ISAPI (موتور پردازشگر ASP.NET)، بررسی میشه. پسوند فایل، aspx تشخیص داده میشه. پس فایل، به منظور پردازش، به لایه ی پردازش ارسال میشه.
    ....
    باز هم سلام،
    متأسفانه نشد!
    من کمی در مورد AJAX مقاله و مثال و مطلب خوندم، تصمیم گرفتم که از کتابخانه AJAX.Net استفاده کنم.
    اجرای یک تابع از پروژه‌ی ASP.Net توسط AJAX.Net سبب اجرای دستورات Session_Start در global.asax نمی‌شه. (البته توی تستی که بنده کردم که نشد!)
    از طرف دیگه، توابعی که برای اجرا توسط AJAX.Net نوشته می‌شوند، در یک کلاس نگهداری می‌شوند و طبیعتاً در آنها نمی‌توان referrer,ip,browser,... را شناسائی کرد.
    با این تفاسیر دو راه باقی می‌مونه، یکی اینکه بتونم این مقادیر را با استفاده از جاوااسکریپت پیدا کنم: ip,refferer,browser,os,enter time,exit time
    که سخته! گرچه مثال‌های زیادی وجود داره، اما به عنوان مثال عملاً هیچ تابع جاوااسکریپتی پیدا نکردم که بتونه در صورتی که مرورگر کاربر اینترنت اکسپلورر باشه، ip اون رو بدست بیاره! و یا نوع سیستم عامل و یا referrer رو.

    راه دوم، اینه که یه عزیز به من بگه این سایت‌های آمارگیر مثل Nedstat و جدیداً Persianstat.com چطور می‌تونن با استفاده از یک خط کد در سایت مقصد، اطلاعات اون رو بدست بیارن.

    مثلاً بنده که از PersianStat.com سرویس می‌گیرم. این کد را در سایت خود گذاشتم:

    <script language='JavaScript' type='text/javascript' src='http://www.persianstat.com/service/stat.js'></script>
    <script language='JavaScript' type='text/javascript'>
    persianstat('10000327', 0);
    </script>

    که طبعاً http://www.persianstat.com/service/stat.js رو می‌تونید داونلود کرده و ببینید.
    و نتیجه این شده است: http://www.persianstat.com/Results.aspx?id=10000327

    آنها چطور اطلاعات بازدیدکننده (referrer,ip,..) را می‌گیرند و به سرور خود می‌فرستند؟

    پیشاپیش از پاسختان متشکرم

  7. #7
    البته من این سوریس رو تا به حال ندیده بودم اما سرویس های اینگونه بسیار ساده و با استفاده از تکنیک تصاویر داینامیک این کارا انجام میدهند. نمونه جاوا اسکریپتی که از وبگذر دیدم به شکل زیر بود این اسکریپت یک تگ ایمیج را از آدرس یک aspx به سایت با استفاده از جاوا اسکریپت وارد میکند .
    function counter(code)
    {var browsev="7";
    var pos=navigator.appVersion.indexOf("MSIE 6");
    if (pos>=0){var browsev="1"};
    var pos=navigator.appVersion.indexOf("MSIE 5");
    if (pos>=0){var browsev="2"};
    var pos=navigator.appVersion.indexOf("MSIE xxx");
    if (pos>=0){var browsev="3"};
    var pos=navigator.appVersion.indexOf("MSIE 7");
    if (pos>=0){var browsev="4"};
    var pos=navigator.userAgent.indexOf("Firefox");
    if (pos>=0){var browsev="5"};
    var pos=navigator.appVersion.indexOf("Netscape");
    if (pos>=0){var browsev="6"};
    var osv="6";
    var pos=navigator.appVersion.indexOf("Windows NT 5.1");
    if (pos>=0){var osv="1"};
    var pos=navigator.appVersion.indexOf("Windows NT 5.0");if (pos>=0){var osv="2"};
    var pos=navigator.appVersion.indexOf("Win 9x");
    if (pos>=0){var osv="3"};
    var pos=navigator.appVersion.indexOf("Windows NT 4");
    if (pos>=0){var osv="4"};
    var pos=navigator.appVersion.indexOf("Windows 98");
    if (pos>=0){var osv="5"};
    screensize=screen.width+'x'+screen.height;colors=" ";
    nav=navigator.appName;
    if(nav.substring(0,9)=="Microsoft"){nav="MSIE";};
    version=Math.round(parseFloat(navigator.appVersion )*100);i
    f((nav=="MSIE") && (parseInt(version)==2)){version=301;};
    java="";
    if(navigator.appName=="Netscape"){ if(version>400);if(version>300)for(var i=0;i';i<navigator.plugins.length;i++)plug +=navigator.plugins[i].name+":"};
    colors=(nav=="MSIE")?screen.colorDepth:screen.pixe lDepth;if(colors=="undefined"){colors="5";};
    if(colors=="32"){colors="1";};if(colors=="24"){col ors="2";};if(colors=="16"){colors="3";};if(colors= ="8"){colors="4";};
    document.write ('<p align=center><a href=http://www.webgozar.com/counter/stats.aspx?code=' + code +' target=_blank><img width=22px height=22px alt="WebGozar.com | شمارنده فارسی برای وب سایت های ایرانی" border=0 src=http://www.webgozar.com/counter/counterpic.aspx?num=4&code=' + code +'&rnd=' + Math.round(Math.random()*50000) + '&b=' + browsev + '&o=' + osv + '&s=' + screensize + '&c=' + colors + '&ref=' + escape(document.referrer) + '></a></p>');
    }
    counter('101817');

    از متن این اسکریپت پیداست که با چه راه ساده ای میتوان اطلاعات رو از سیستم کاربر گرفت. Ip هم با استفاده از همون راه قدیمی از رکوئست میگیرن و همه را در دیتا بیس ثبت میکنن.

تاپیک های مشابه

  1. بارش برف در javascript
    نوشته شده توسط alirezasheida در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: دوشنبه 17 مهر 1385, 10:45 صبح
  2. کتاب مناسب Javascript
    نوشته شده توسط رهنورد2 در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: یک شنبه 02 مهر 1385, 19:49 عصر
  3. چک کردن JAVASCRIPT ِ کاربر
    نوشته شده توسط sarasara در بخش طراحی وب (Web Design)
    پاسخ: 5
    آخرین پست: پنج شنبه 09 شهریور 1385, 00:42 صبح
  4. چگونه یک فایل javascript در صفحه اجرا کنم
    نوشته شده توسط sm_montazar در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: دوشنبه 12 تیر 1385, 09:25 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •