0

我有一个最终将放置在服务器上的 XAML 浏览器应用程序,但是我目前正在我的 Documents 文件夹中对其进行测试。我正在尝试从本地读取 XML 文档,但我被困在XmlReader.Create(); 当我尝试使用我的 XML 文档时,抛出了 SecurityException,所以我尝试使用以下内容来授予 XML 文件的读取权限:

FileIOPermission fpa1 = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\Users\User1\Documents\Visual Studio 2010\Projects\WpfBrowserApplication2\WpfBrowserApplication2\XMLDoc1.xml");
xReader = XmlReader.Create(@"C:\Users\User1\Documents\Visual Studio 2010\Projects\WpfBrowserApplication2\WpfBrowserApplication2\XMLDoc1.xml"

错误消息如下:

A first chance exception of type 'System.Security.SecurityException' occurred in mscorlib.dll
Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=[tokennumber]' failed.

FileIOPermission 是用于启用 XmlReader 读取权限的正确类吗?

4

1 回答 1

0

FileIOPermission 类用于检查您是否有权限,而不是设置它。

IE:

try
{
    FileIOPermission perf = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\Users\jbeaulac\Documents\test.xml");
    perf.Demand();
}
catch (Exception ex)
{
    MessageBox.Show("Not enough permission, blah blah blah.");
    return;
}


var reader = XmlReader.Create(@"C:\Users\jbeaulac\Documents\test.xml");
/// ...

在 XBAP 应用程序中,您不能随意弄乱用户的文件,除非您的应用程序是完全信任的。

项目属性 --> 安全 --> 这是一个完全信任的应用程序

此外,如果您打算使用 XBAP,那么此文档确实值得一读:

http://msdn.microsoft.com/en-us/library/aa970910.aspx

于 2012-06-21T02:22:38.900 回答