Ich benötige die Browser-Daten des Client, damit ich auswerten kann ob der Browser ein mobile-Client für Smartphones ist.
Wie kann ich die Browser-Daten is aspNetCore ermitteln?
Lösung:
Die Browser-Informationen kann man aus dem Request Header mit dem Key: User-Agent auslesen.
Code Beispiel in Core
String sHeader = Request.Headers["User-Agent"].FirstOrDefault(); ViewData["UserAgent"] = sHeader; |
Anzeige als Test:
Man kann sich wie in diesem Script den aktuellen Browser-Information auf dem Footer einer Webseite anzeigen lassen
Asp.Net Core MVC C# Code im Controller
Hier wird der Header des Client-Browsers ausgelesen und als ViewData an die View weitergegeben.
public IActionResult Index() { //-< goto View >-- String sHeader = Request.Headers["User-Agent"].FirstOrDefault(); ViewData["UserAgent"] = sHeader;
return View("Index"); //-</ goto View >-- }
|
Razor-Code In der View
In der Anzeige-View kann man dann den ViewData-Wert einfach anzeigen mit Html.Raw(..)
<br /> <span style="display:block"> @Html.Raw(ViewData["UserAgent"]);
</span>
|
Im Chrome-Browser:
Im Chrome Browser findet man die aktuellen Browser-Daten unter dem. Network Bereich
Hierzu öffnet man mit Alt-Shift-I die Entwicklerumgebung, geht auf Network und aktualisiert dann die Webseite erneut.
Requerst View
GET /getuid?https%3A%2F%2Fads.avocet.io%2Fsync%3Finvsrc%3D5575b5a3d6e9d6ab4a43bc78%26ext_uid%3D%24UID HTTP/1.1 Host: secure.adnxs.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36
Accept: image/webp,image/apng,image/*,*/*;q=0.8 Referer: https://localhost:44390/ Accept-Encoding: gzip, deflate, br Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7 Cookie : uuid2=520135025917438995; anj=dTM7k!M4/S@-f2S@yxQrbGDv'VkZ=P-RC!Fn]bTkls50%sn#/8*s5*v+oCc/VK^wS*hF9#X@.?^M)LVG9!'i(wF_FQ)MgAG*(HFZWmy45eNTH*4yG-5Dg*4ygWJke#./:/_jrj.7*q=vTF3`'6R=7N_B#>Fd[TVxo=NgmR:`3TM[l1THYmH@f$iJPu:JwD8SrwcCNsAy+[^`aS9C-B./F]T38G1_beXZe7JAN=MQ4UL!Tba)IwO_J2B70C7%(]'3dY!A/f2Q]@%oH]TcUOcTGa+HZ_)7.%RnCjc9yyGQzquN2sThNg@PHSBLVJ<*oTZouR)n1jYt_fCi??iVG[3ACDvd1lrJA(v]b)p/Uky<Mo_S[m$M$[/]?:pAChh[n`AUE5?m^y_?Sp14j_v1=I/6xkRuBiRdT8XKMH^bq#e%d?pG`PK@58suAWKN`[-'/8LZVE2ds'vrgH.+azHeEaF6xj_KG(@EG)GXVrveto?3h%%Db!T$M<w[EZU70GB$ex52=.H9+`yKIs3hX=AYe:X)xpxx$?FLwiAJCpeKyZGH:sm[h42h=?$nRTUVl0qK[<tDTIuEjoyb-4<sg@#'/J7eO`xT`m-`JNtu+?=JlA?YeF1`-RVUsmL#e7:4qUAXwt!-Hl8h+0lA.ZZ0[O/jGu%HjDJ0M*g'ibK]4^8=uEkl3'QKW=.-W2GTMFKPTW=O(IV#]6zw4:!HQ+uQc8n`fA7YqVasfsXTn^r])dK*$xXH^(8Og`TWFk5V$+SZ*Bf_nD(`l?8Cz[dbY(9LAz4'LUe4xJ[z5AR^:8_=BvwU^Bm*2g@A/xzG4F^6gA1ehFN.nSU+HSBnVyc_W7pLZZ:dX<UN5l6kaJvYHExW5H9=^o-[:MWHm`:BU/znOQXQ>yvzpeE8[unyNz9B+Ep2mGLZ@/Ah'Cx^''0CdDM:=M/%$9xv?$:DW.'0Ts)2jZ+-!zsEs2U0eB%3oWGtFGVbFZT#).gq*-b/YHL_SXAH/=QpF.D6'XJ^D-65NL21RU0TV^6O5VVx/Xt.Tg@HI*uG>K:e-gG^@?-tGEfi=rynVyca7Me+xSZ`2J8g5V#9b@LP*yL#xHe+i'$w[8Qf'%GNPn*ELde?d4.AI-3cymU>XwUaQJ*4BD^jQRmME.doJ0K#4%8yFPG=oV5G0s]W4*G/T0D'P$+7p@UfiYV$-vmJ#Q_Jm%[ww5>@]mcVXy%6Qq(!DC8_-mB39c9n%]e6BG*.(5TRpxWob.fT!5r.uOGp($?U.$H?24)'.H)B=svWxc<mhU5U>a=OZVr*Sj`:!F/KsZNk<b[rm+zyRb/h7ZK0r)sGmx`rCt'av(*C4$M4p[r!e02JGNsKZ+Bh!V`q5-xO`>az>s*V+/riD]D__2=S^<0'=UVc^91auBEoo%fRjF)^F#<xr88/`[45scm/VrMmH@?%!jyVWR(po'3ZC_^zJ^O1P'u$:5+M3FVR:)oK7UU'q.VRROVWF[alMF2paI%<DW0)?1$ziLj0kERT'+-$mZRp33DQfxW/A1B:LuHPX`nk?7imvkw)MOPHs$.N>s$jybYzc('jE$diO=UC=; sess=1; icu=ChwI_KBJEAoYGCCMASiMATCukPfWBTgSQIwBSIwBEK6Q99YFGIsB config.js?nwid=1097 getuid?https%3A%2F%2Fads.avocet.io%2Fsync%3Finvsrc%3D5575b5a3d6e9d6ab4a43bc78%26ext_uid%3D%24UID |
Abfrage in Asp.Net Core
Unter Asp.Net Core kann man die Header Daten mit Headers["User-Agent"] auslesen.
Am Besten wendet man die Linq.FirstOrDefault() Methode an, um die Werte auf einen String zu überladen.
Die Abfrage des HeaderUserAgent geht wie hier: