Détecter si une page se trouve dans un iframe - côté serveur
Comment puis-je détecter côté serveur (c#, asp.net mvc) si le chargement de la page est dans une iframe? Grâce
source d'informationauteur pistacchio
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas possible, cependant.
et de vérifier ensuite serverside si la requête contient l'iframe=oui
ou avec l'en-tête Referer envoyer par le navigateur.
Utiliser le Code suivant à l'intérieur de la forme:
Ensuite, vous pouvez vérifier facilement si c'est un iFrame dans le code-behind:
Testé et a travaillé pour moi.
Edit: Veuillez noter que vous avez besoin de jQuery pour faire fonctionner mon code ci-dessus. Pour l'exécuter sans jQuery, utilisez simplement un code comme le suivant (non testé) code pour définir la valeur du champ caché:
Edit 2: il ne fonctionne que lorsque la page est chargée qu'une seule fois. Si quelqu'un avez des idée pour améliorer cela, laissez-moi savoir. Dans mon cas, heureusement, j'ai seulement besoin de la valeur après une publication.
Il n'y a aucun moyen de vérifier ce qui s'adaptera à votre exigence de "sécuriser" comme il est dit dans votre commentaire sur @WTP réponse.
Je ne pense pas que le côté serveur peut le faire, donc pourquoi ne pas mettre un contrôle caché dans votre page dans l'iframe? Lorsque l'URL de l'iframe charge, vous pouvez ajouter un peu de code côté client pour définir le caché d'entrée pour indiquer que vous êtes dans un iframe. La méthode la plus simple vérification sur le côté client dans une méthode onload, comme ceci:
C'est plus sûr que la chaîne de requête, mais toujours peut-être pas assez de sécurité pour vous.
Mes 2 cents.