"this file is blocked because it came from another computer" - ajax permission issue
asp.net, c#, javascript, jquery
Solution
The NTFS file system attache to this file a flag as unsafe. You can use one utility from Sysinternals called Streams to remove this flag. You can download the Streams from:
http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx
Then using the Process class you can run the `streams -d <file.xml>` command to remove this flag, after you have get the file. How to run it:
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();
The Streams are from MS site, so its official and credible source, and its just a utility that remove this flag from the file. I think that you can do your job.
Related: https://superuser.com/questions/38476/this-file-came-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
Problem
Im fetching a local xml file using jQuery ajax through an html that i download from my site. The problem is that each and every time the file gets downloaded, the user must right click on it -> properties -> unblock. Otherwise jquery ajax throws a "permission denied" error. Is there any way to mark the file as trusted or something similar? Should i implement something on the serverside when downloading the file? Or add something on the client side in the saved html file? Thanks in advance.