Sayfalar

6 Haziran 2013 Perşembe

IE10 üzerinde ASP.NET ve MVC Cookieless Session ve AJAX POST Problemleri

Daha önceden yapmış olduğumuz ASP.NET tabanlı uygulamalarda Web.config dosyasında belirtmediğimiz session ve form ayarlarının default ayarlarının algılanma şekli IE10 tarayıcılarda farklı çalışmaya başladı. IE10 dan önceki sürümlerde çalışmaktayken, IE10 ile girdiğimizde önceleri
http://mysite.com/welcome.aspx
şeklinde olan adres,
http://mysite.com/welcome.aspx(A(ikRoEoqwOieH_FyADedeEbit-_uDNadHNudahUar-HaUsU99DiasIadsjKAsjJiaojdJaJadijAQBR0))/Welcome.aspx

şeklinde görülmeye başladı. Bu durum normalde cookieless session kullanıldığında yani session ve formlarda cookie kullanılmadığında olur. Normalde aşağıdaki config ayarlarındaki bazı parametreleri belirtmediğimizde kullanılan varsayılan ayarlar, IE10 tarayıcı için değişmiş görünüyor. Bu yüzden uygulamayı eski haline getirebilmek için aşağıdaki iki adımlı çözümü uygulayabiliriz:

1. FormsAuthentication tag’ı içinde cookieless="UseCookies" olarak belirtin:

    
2. Session tag’ı üzerinde cookieless="false" olarak belirtin:

İkinci bir hata da ASP.NET MVC ile geliştirilen uygulamalara gönderilen jQuery AJAX POST isteklerindeki null argümanlar yüzünden action metotların hata vermesi ki bu major bir bug ve jQuery’i ilgilendiriyor. Halen bir çözümü bulunmamakla beraber bir ticket açılmıştır, buradan durum takip edilebilir.

Ancak geçici olarak tarayıcının uyumluluk modunu IE9 a zorlayabiliriz. Bu işlem cookieless session problemi dahil tüm sorunları ortadan kaldırmaktadır.

MVC için



ASP.NET için


olacak şekilde
protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
 
    var ua = HttpContext.Current.Request.UserAgent;

    if (ua != null && ua.ToLower().Contains("msie 10"))
        this.Header.Controls.Add(new HtmlMeta() { Content = "IE=9,chrome=1", HttpEquiv = "X-UA-Compatible" });
    else
        this.Header.Controls.Add(new HtmlMeta() { Content = "IE=Edge,chrome=1", HttpEquiv = "X-UA-Compatible" });
}

kullanabiliriz.

Referans:


http://discusscode.blogspot.com/2012/12/fixing-aspnet-application-for-ie10.html

Hiç yorum yok:

Yorum Gönder