5

私のサイトからダウンロードしたhtmlを介して、jQuery ajaxを使用してローカルxmlファイルを取得しています。

問題は、ファイルがダウンロードされるたびに、ユーザーがファイルを右クリックする必要があることです->プロパティ->ブロックを解除します。そうしないと、jquery ajax は「許可が拒否されました」というエラーをスローします。

ファイルを信頼できるものとしてマークする方法はありますか? ファイルをダウンロードするときにサーバー側で何かを実装する必要がありますか? または、保存された html ファイルにクライアント側で何かを追加しますか? 前もって感謝します。

4

3 に答える 3

6

NTFS ファイル システムは、このファイルに安全ではないというフラグを付けます。Streams と呼ばれる Sysinternals の 1 つのユーティリティを使用して、このフラグを削除できます。ストリームは次の場所からダウンロードできます。

http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx

次に、Process クラスを使用して、ファイルを取得した後、コマンドを実行しstreams -d <file.xml>てこのフラグを削除できます。実行方法:

Process runcommd = new Process();

runcommd.StartInfo.FileName = "streams";
runcommd.StartInfo.Arguments = " -d \"fullpath\\file.xml\"";

runcommd.StartInfo.UseShellExecute = false;
runcommd.StartInfo.CreateNoWindow = false;

runcommd.StartInfo.RedirectStandardError = true;
runcommd.StartInfo.RedirectStandardOutput = true;
runcommd.StartInfo.RedirectStandardInput = true;

// now run it
runcommd.Start();

// be sure that we end
runcommd.StandardInput.Flush();
runcommd.StandardInput.Close();

ストリームは MS サイトからのものであるため、公式で信頼できるソースであり、ファイルからこのフラグを削除する単なるユーティリティです。私はあなたがあなたの仕事をすることができると思います。

関連: https://superuser.com/questions/38476/this-file-cam-from-another-computer-how-can-i-unblock-all-the-files-in-a

http://www.k9ivb.net/files/This%20file%20came%20from%20another%20computer%20and%20might%20be%20blocked.pdf

于 2012-05-14T13:25:10.423 に答える
1

@Aristosは、代替ファイルストリームの問題にスポットを当てていますが、これは外部EXE(streams.exe)を使用せずに実行できます。後でこれを見ている他の人は、次のコマンドを実行して代替ファイルストリーム(AFS)を空にすることができます。

echo. > my_blocked_file.zip:Zone.Identifier

my_blocked_file.zipのファイル名を想定すると、これによりAFSのコンテンツが空になります。また、発行dir /rしてAFSを一覧notepad my_blocked_file.zip:Zone.Identifier表示し、実際に編集することもできます。

これは、インターネットゾーン識別子がどのように見えるかです。

[ZoneTransfer] 
ZoneId=3

これらのストリームに関する追加の資料:http: //msdn.microsoft.com/en-us/library/ff469212( v = prot.10

それぞれのセキュリティゾーンは次のとおりです。

  • イントラネット:ZoneId = 1
  • 信頼できるサイト:ZoneId = 2
  • インターネット:ZoneId = 3
  • 制限付きサイト:ZoneId = 4

また、IEはセッションを開いたり閉じたりしたときにのみAFSを読み取るように見えるため、ストリームを変更してから更新することはできません。新しいAFSを再度読み取るには、新しいIEインスタンスを作成する必要があります。

于 2012-05-15T22:48:00.487 に答える
0

これを試してみてください。regeditを開き、次のキー/値を探します。

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Attachments \ SaveZoneInformation

この値を1に設定して、問題が解決するかどうかを確認します。HKCU値として、確実にログアウトしてから再度ログインする必要がある場合があります。このメッセージがもう一度表示される場合もありますが、この値を指定して再度ブロックを解除すると、メッセージが再度表示されなくなる可能性があります。

于 2012-05-14T11:34:58.060 に答える