2009-04-07 18 views
5

Sunucu tarafı - bir sayfanın bir IFrame içinde yüklenip yüklenmediğini belirlemek mümkün mü?Bir IFrame içinde bir sayfanın görüntülendiği sunucu tarafı algılaması

Uygulamamda belirli hatalar olduğunda, kullanıcı Default.aspx'a yönlendirilir ve bir hata mesajı görüntülenir. Bu hata mesajının metni istisna işleme koduyla oturumda ayarlanır. Hata mesajı gösterildikten sonra oturumdan silinir.

Ancak, benim uygulamamın bir kısmı bir IFrame (kart sağlayıcısının kimlik doğrulama kullanıcı arabirimini görüntülemek için bir IFrame ürününü yöneten bir 3D Güvenli kart ödeme denetimi kullanıyor) kullanmak zorunda. Bu işlem sırasında bir hata oluşursa, yönlendirmem IFrame içinde yürürlüğe girer. Bunu algılamak için JavaScript'i kullanıyorum ve Default.aspx'u doğru şekilde yeniden yüklüyorum, ancak bu, iki tane Page_Loads'u hızlı bir şekilde arka arkaya aldığım ve hata mesajının yalnızca birincisinde (ve sonra temizlendiğinde) gösterildiğini gösterir.

+1

Mozilla Geliştirici Ağı. Aslında bununla bir sürü solucan açtım ve muhtemelen neler olup bittiğini öğrenene kadar mesajımı buraya eklememeliydim, üzgünüm. (bkz. http://stackoverflow.com/questions/15344187/how-does-it-appear-that-mdn-can-detect-a-request-from-an-iframe-on-the-server-si) – JayC

cevap

0

Bir çeşit Page.IsInIFrame() tür işlevine sahip olmanız anlamında algılayabileceğinizi sanmıyorum, ancak IFrame'de yüklü olan sayfalar için farklı temel sınıflara sahip olmayı düşünebilirsiniz. Bu nedenle, hatanın bir ölçüde yardımcı olabilecek bir IFrame sayfası için olan bir istek olduğunu bildiğinizden emin olabilirsiniz.

0

Sunucu tarafında bir yol yok. Tek yol javascript ile. Yönlendirmeyi yaptığınızda, hata mesajını veya kodu bir sorgulama yoluyla iletir misiniz?

0

Javascript'i window.location ile yönlendirmek işe yaramaz mı? Tam sayfa yönlendirmeye zorlanıyor musunuz?

0

sadece, şu anki sayfanın URL'sini kontrol edin .. IFrame sayfasındakiyle aynıysa, Default.aspx veya herhangi bir şeye yönlendirin.

Dim urlpath1 As String = HttpContext.Current.Request.Url.AbsoluteUri 
If Right(urlpath1, 13) = "WebForm1.aspx" Then 
     Response.Redirect("~/") 
    Else 
     Response.Write("It's OK!") 
    End If 
+0

Sadece Request.UrlReferrer'ı kullanmanız ve Request.Url'nin iframe Url'yi döndürmesi için Request.Url'yi kullanmamanız gerektiğine dikkat edin. –

İlgili konular