Web サイトで外部 URL を開くことができるようにする必要があります (ブラウザーとソースの両方で)。URL をコピーしてクエリ文字列を好きなように編集できるようにしたくありません。URLをiframeなどで開き、そのソースを非表示/マスクする方法はありますか?
これは asp.net 2.0 の Web サイトです。
Web サイトで外部 URL を開くことができるようにする必要があります (ブラウザーとソースの両方で)。URL をコピーしてクエリ文字列を好きなように編集できるようにしたくありません。URLをiframeなどで開き、そのソースを非表示/マスクする方法はありますか?
これは asp.net 2.0 の Web サイトです。
次のことをしていただけませんか。
このようにすると、ユーザーは他のサイトについて知ることができなくなり、はるかに安全になります。
これは、ユーザーが他のユーザーのPDFを取得するために渡されたパラメーターを変更できないように、いくつかの検証/認証を使用することもできます。
いいえ。クライアント マシンに何かをさせている場合 (つまり、ブラウザで Web ページを指定するなど)、その情報をクライアントから保持することはできません。
そのページのサーバー側をフラッシュ ウィジェットまたはその他のコンテナーでレンダリングできますが、クライアント マシンでは実行できません。
私はしばらく前に同じような問題を抱えていて、これらの方針に沿って何かをしました(C#.NET2.0)。
public void StreamURLContents(string URL)
{
WebRequest req = WebRequest.Create(URL);
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
using (Stream dataStream = resp.GetResponseStream())
using (StreamReader reader = new StreamReader(dataStream))
{
string currentLine = reader.ReadLine();
while (currentLine != null)
{
Response.Write(currentLine);
currentLine = reader.ReadLine();
}
}
}
特定のアプリケーションに明らかに合うようにHTMLの記述を調整する必要があり、ターゲットサイトのすべての相対リンク(画像URL、CSSリンクなど)を壊しますが、単純なテキストだけを求めている場合はHTMLを使用して、Webアプリにサーバー側で取得させたい場合は、これが適切な方法です。
最善の策:サーバー側のXMLHTTPリクエストを作成し、レスポンスを取得して、AJAXを使用してページにフィードバックすることができます。
次の方法でサーバーサイドで実行できます。
ただし、これによりページの読み込みが大幅に遅くなり、法的な問題が発生する可能性があります。
次の手順で、ワンタイム URL を作成できます。