0

最終的にサーバーに配置される 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 で読み取りアクセス許可を有効にするために使用する正しいクラスですか?

4

1 に答える 1

0

FileIOPermission クラスは、権限を設定するためではなく、権限があるかどうかを確認するために使用されます。

いいえ:

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 に答える