Установить разрешение на чтение локального файла XML в C# для приложения браузера XAML
У меня есть приложение браузера XAML, которое в конечном итоге будет размещено на сервере, однако в настоящее время я тестирую его из папки "Документы". Я пытаюсь читать из 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?
1 ответ
Класс 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, эту документацию действительно стоит прочитать: