Silverlight 4 FileInfo.OpenRead方法正在处理任何没有提升权限的文件夹
我有一个Silverlight 4应用程序在浏览器中运行,没有提升权限,在其中我有一个上载文件功能部分,其中会显示OpenFileDialog窗口,您可以选择要上载的文件并将文件保存到数据库中 问题是应用程序实际上可以访问用户配置文件文件夹之外的文件,这是silverlight安全策略不允许的Silverlight 4 FileInfo.OpenRead方法正在处理任何没有提升权限的文件夹,silverlight,security,fileinfo,Silverlight,Security,Fileinfo,我有一个Silverlight 4应用程序在浏览器中运行,没有提升权限,在其中我有一个上载文件功能部分,其中会显示OpenFileDialog窗口,您可以选择要上载的文件并将文件保存到数据库中 问题是应用程序实际上可以访问用户配置文件文件夹之外的文件,这是silverlight安全策略不允许的 private Asset ReadAsset(FileInfo fileInfo) { byte[] fileBuffer; using (FileStrea
private Asset ReadAsset(FileInfo fileInfo)
{
byte[] fileBuffer;
using (FileStream fileStream = fileInfo.OpenRead()) //This line works from any location
{
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
fileBuffer = binaryReader.ReadBytes((int)fileStream.Length);
binaryReader.Close();
}
fileStream.Close();
}
DirectoryInfo di = fileInfo.Directory; //This line doesn't work
}
这实际上是在读取文件,无论在什么位置,我甚至可以读取system32文件夹中的文件,我没有办法获取我的文档或文档文件夹,因为即使是这样。
Environment.GetFolderPathEnvironment.SpecialFolder.MyDocuments
它不起作用。简而言之。我可以从任何位置的任何文件读取字节,而在浏览器上运行的silverlight应用程序不应该这样做
任何帮助都将不胜感激。我想您似乎关心的是,通过OpenFileDialog,任何文件都可以被读取,无论其在客户端文件系统中的位置如何 这很好,很正常。具有信任限制的OOB仅适用于未经请求的访问。也就是说,用户无需直接和显式交互即可访问文件系统
在OpenFileDialog的情况下,用户明确指定了要选择的文件,用户可以自由选择他们想要的任何文件。即使是标准的内置应用程序也是如此。是的,我认为只有访问用户配置文件文件夹的安全策略才能通过OpenFileDialog应用于用户交互。谢谢你澄清这一点。