ورود

View Full Version : سوال: اشتباه در شناسایی نام و ورژن مرورگر



Iran58
جمعه 11 اسفند 1396, 10:53 صبح
سلام
من بادستور زیر

var browser = Request.Browser;
BrowserName = browser.Browser,
BrowserVersion = browser.Version

نام و ویرژن مرورگر را بدست میاورم
اما وقتی از Edge استفاده میکنم نوع مرورگر را گوگل کروم نمایش میدهد و ویرژن هم 55
اما مابقی مرورگرها را درست نمایش میدهد
چرا اینگونه است

hakim22
جمعه 11 اسفند 1396, 12:02 عصر
مرورگر Edge عمدا عبارت Chrome رو User-Agent قرار میده تا با مرورگرهای دیگه اشتباه گرفته بشه. برای اینکه خیلی از برنامه نویسا قبلا به کاربر پیشنهاد میدادن که بجای IE از مرورگرهای دیگه مثل فایرفاکس یا کروم استفاده کنن.

البته همین کارو کروم و فایر فاکس هم میکنن. در واقع همه سعی میکنن آب رو گل آلود کنند تا تشخیص نوع مرورگر راحت نباشه.
همه سعی میکنند که بگن ما یک مرورگریم ولی از عهدهی انجام کار هر نوع مرورگر دیگه بر میاییم. برای همین لیست همه ی موتورهای موجود و مرورگرها رو در User-Agent میزنن. مثلا برای Edge اینطوریه :


Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299


برای تشخیص Edge باید مقدار Header مروبط به User-Agent رو چک کنید ببینید عبارت Edge توش هست یا نه.

البته تضمینی نیست که همیشه درست کار کنه چون کروم هم اگر ببینه که Edge طرفدار زیادی پیدا کرده خودش رو جای اون جا میزنه.

anubis_ir
شنبه 12 اسفند 1396, 10:25 صبح
علت اصلي‌اش بر مي‌گرده به ناقص و به روز نبودن پوشه App_Browsers (http://www.dotnettips.info/post/2339/%d9%86%d8%ad%d9%88%d9%87%e2%80%8c%db%8c-%d8%b4%d9%86%d8%a7%d8%b3%d8%a7%db%8c%db%8c-%d9%85%d8%b1%d9%88%d8%b1%da%af%d8%b1-edge-%d8%af%d8%b1-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8c%d9%8 7%d8%a7%db%8c-asp-net)