2011-01-31 10 views
1

私はWebページに埋め込まれたSilverlight 4アプリケーションを実行しています。SilverlightクライアントアプリケーションがApacheサーバー上のテキストファイルにアクセスするのを許可しますが、ブラウザアクセスは許可しないでください。

Uri url = new Uri(@"config\settings.xml", UriKind.Relative); 
WebClient client = new WebClient(); 
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
client.DownloadStringAsync(url); 

しかし、理想的に、私は、ユーザーが訪問して、ブラウザで直接ファイルにアクセスしようとした場合で403 Forbiddenを返したい:私は、Silverlightクライアントのようなものを実行して、設定ファイルをダウンロードできるようにしたいと思いますhttp://www.mywebsite.com/config/settings.xml

これは.htaccessを使用して可能ですか?

答えて

2

SilverlightまたはWebブラウザからファイルにアクセスするのはWebサーバーと同じように見えるため、ユーザーがアクセスできないことを保証することはあまりありません。できることは、ファイルを取得するために必要な手順を難読化することです。

HTTP Watch/Firebug/Wiresharkを有効にして、SilverlightクライアントがWeb要求を行うSilverlightであることを示す特別なHTTPヘッダーを送信するかどうかを確認することができます。一意のものを識別できる場合は、そのヘッダーを持つ要求のみが許可されるようにWebサーバーを構成することができます。

このようなヘッダーがない場合、別のオプションは何らかの種類の認証を使用することです。資格情報はSilverlightクライアントに格納されるため、実際には安全ではありませんが、ファイルを取得する方法がわかりにくくなります。

ファイルをWeb上ではなくクライアントにコンパイルすることもできます。

編集:それは、Silverlightのように見える見えない

は、任意の特定のヘッダを送信します。あなたはあなたのコードに常に "手動で"あなたの要求にヘッダを付加することができます。

0

Silverlightはクライアント側で実行されるため、http要求によってデータを取得します。 Silverlightがカスタムhttpエージェント(参照できない)を使用できない限り、そのファイルにアクセスする方法は常にありますが、アクセスを制限することはできません。

関連する問題