我有一个最终放在服务器上的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的读取权限的正确类?
答案 0 :(得分: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,那么这个文档真的值得一读: