Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display external website page in asp .net mvc 5

Tags:

asp.net-mvc

I am building a website for a class project using ASP NET MVC 5, wherein I need a section of the website to display a page from a different website. The goal is to somehow embed that page in my view, so UI interactions are still possible with the embedded page, as if the page was visited directly in the browser (the end effect is that the page is rendered and allows interaction but my website theme always stays around it)

I know one way to do it is to just put it inside an iframe in my View. But I want to know if there is a different solution. My instructor suggested using partial views, but I can't figure out how to achieve the same result. Can anyone suggest a different way to achieve this ? Also, what would be the right way to do this in terms of security (I believe iframe is), but I want to know other's opinion ?

Thanks.

like image 245
Jake Avatar asked May 02 '14 10:05

Jake


1 Answers

I suggest you use a sandboxed IFrame e.g.

http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
    src="https://blah.com/index.html"
    style="border: 0; width:130px; height:20px;">
</iframe>

You can tweak how much power the content in the Iframe has (i.e. can it run scripts).

I guess you could also look at using a partial view. My guess is you'd need to use a WebClient instance to download the HTML source of the target webpage, and then pass that HTML into a partial view. But I don't see how any script tags would render correctly for you, which means the page would not be interactive.

like image 119
Jason Evans Avatar answered Jan 07 '23 06:01

Jason Evans