Showing posts with label Safari. Show all posts
Showing posts with label Safari. Show all posts

Wednesday, September 11, 2013

IOS7 - Safari User-Agent

The IOS7 Gold Master version is out yesterday, after the keynote. Just for you know, the user-agent of safari on this version is :

Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

Provided by IPhone 4S, IOS7 GM

Thursday, June 13, 2013

Safari IOS7 & HTML5

I'm just installing IOS7 Beta 1 on my iphone. So directly, let's go to html5test.com to compare IOS7 Score vs IOS6 score.

The score for IOS7 is 404 points and 9 Bonus points and the score for IOS6 (6.0.1) is 386 points and 9 Bonus points.

What are the differences?
  1. Add Subtitle support in Video
  2. Removal input type=datetime
  3. Add progress
  4. Add Seamless iframe
  5. Add XmlHttpRequest level 2
  6. Add Page visibility
  7. Canvas
    1. context.setLineDash()
    2. context.getLineDash()
Sources : html5test.com

Thursday, December 13, 2012

ASP.NET Forms Authentication Safari/Chrome sur IOS

Contexte

Je développe actuellement une Webapp HTML5 communiquant avec des services WCF. Pour les sécuriser, j'ai implémenté l'authentification ASP.NET par formulaire.
Certaines fois, sur iOS 6,  l'appel au webservice sécurisé était refusé. Sur ipad, je l'ai généralement rencontré en Webview, quand on ajoute la webapp sur le Homescreen.

Lors de la connexion de l'utilisateur à la Web App, on réalise le code ci-dessous :
  1. FormsAuthentication.SetAuthCookie(userName, true /*createPersistentCookie*/);
La configuration de Web.config est la suivante :
  1. <authentication mode="Forms" >
  2. <forms loginUrl="../Login.html" timeout="2880" />
  3. </authentication>

Solution

En analysant la réponse du serveur je me suis aperçu que finalement je n'étais pas authentifié. Alors que le web service d'authentification l'avait bien confirmé.
Certaines fois le cookie d'authentification n'est pas bien obtenu par le navigateur, notamment sur Safari et Chrome. Après beaucoup de recherches, j'ai finalement trouvé une solution.

Plusieurs étapes sont à réaliser :
  1. Dans le Web.config, il faut ajouter la clé suivante, qui permet de forcer l'utilisation des cookies par le navigateur. Par défaut c'est UseDefault :
    1. <authentication mode="Forms" >
    2.        <forms loginUrl="../Login.html" timeout="2880" cookieless="UseCookies" />
    3. </authentication>
  2. Ensuite il peut aussi être utile de rajouter une MachineKey dans le Web.Config, pour éviter un problème dans le cryptage/décryptage du cookie d'authentification.
    1. <system.web> 
    2.       <machineKey validationKey='myKey' decryptionKey='myDecryptKey' validation='SHA1'/>
    3. </system.web>
Pour générer une machineKey, vous pouvez aller directement sur ce site : Générateur de machineKey