2012-02-20 56 views
3

私はASPページのiFrameのスクリーンショットを撮る簡単な方法を探しています。私はちょうどC#でそれを達成できず、私はJavascriptの知識が不足しています!そこにいる誰も、これを達成するためのシンプルで最良の方法を知っていますか?iFrameのスクリーンショットを取る

私がしようとしていることは、生徒が自分の国の電子政府のウェブサイトにログインして、彼らがGoogleのサービスから割引を得ることができるようにワンクリックで学生であることを証明できるウェブサイトを構築することです。

編集:パズルはローカルで解決する必要があります。

+0

個人的に、私はIFRAMEのスクリーンショットはあまり証明されておらず、学生が合法であることを証明するという概念としてはかなり安全ではないと思います。私は別の解決策を考えて提唱するだろう。 – SpaceBison

答えて

2

コードのこの作品は、私のために働きました。私はそれが他の人たちと同じことを望む。

private void saveURLToImage(string url) 
    { 
     if (!string.IsNullOrEmpty(url)) 
     { 
      string content = ""; 


      System.Net.WebRequest webRequest = WebRequest.Create(url); 
      System.Net.WebResponse webResponse = webRequest.GetResponse(); 
      System.IO.StreamReader sr = new StreamReader(webResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")); 

      content = sr.ReadToEnd(); 
      //save to file 
      byte[] b = Convert.FromBase64String(content); 
      System.IO.MemoryStream ms = new System.IO.MemoryStream(b); 
      System.Drawing.Image img = System.Drawing.Image.FromStream(ms); 
      img.Save(@"c:\pic.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 


      img.Dispose(); 
      ms.Close(); 
     } 
    } 
+1

彼は質問に答えますか?コードはスクリーンショットを撮っていません。また、フレームワークの方法があるにもかかわらず、画像をダウンロードしてローカルに保存するように設計されているようです。あなたがページURLを与えた場合、それはレンダリングされないので、保存するイメージはありません。 – Edgar

0

私があなたを誤解していない限り、これは不可能です。

  • ユーザーのブラウザにスクリーンショットを取るように指示することはできません(これはセキュリティ上のリスクとなります...とにかく使用例はほとんどありません)。
  • アクセスするのに必要な資格情報がないため、自分自身のスクリーンショットが必要なページ(サーバー側コード付き)を読み込むことはできません。
+0

@Aristos - いいえ、そうではありません。それらはHTMLをPNGにレンダリングしようとします。それは正確ではないということを一番上に示しています。また、同じ起源ポリシーによってiframeからデータを読み取ることができなくなります。 – Quentin

+0

+1あなたは正しいと思いますが、ここでこのように質問するのはおそらく不可能です。 – Aristos

+0

JAVAアプレットを使ってスクリーンショットを撮ることができます。 –

-2
+0

[標準のセキュリティ制限のために]これは動作しません(http://en.wikipedia.org/wiki/Same_origin_policy)。 – Quentin

+0

2番目のリンクでテストコンソールボタンを押すと、指定したリンクのスナップショットが表示されます。ログインするには、指定されたURLの資格情報が必要です。 –

+0

そのページを引用するには:「外部ページの読み込みには多くの問題があります。プロキシがあっても、多くのページがまったくレンダリングされません」 – Quentin

関連する問題