我有一个 Silverlight 4 应用程序在没有提升权限的情况下在浏览器中运行,其中我有一个上传文件功能部分,其中会出现一个 OpenFileDialog 窗口,您可以选择要上传的文件并将文件保存到数据库中。
问题是应用程序实际上可以访问用户配置文件文件夹之外的文件,这是 silverlight 安全策略不允许的。
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.GetFolderPath(Environment.SpecialFolder.MyDocuments);
不管用。所以简而言之。我可以从浏览器上运行的 silverlight 应用程序不应该做的任何位置的任何文件中读取字节。
任何帮助将不胜感激。