ファイル システムへのアクセスが必要なイントラネット アプリケーションの一部である Xbap アプリケーションがあります。
アプリを完全に信頼し、有効な証明書で署名し、証明書を ie にインポートすると、xbap は完全に機能します。
私の問題は、ユーザーが証明書をインストールしていない場合、つまりファイル システム IO アクセスがない場合に、アクセス許可が拒否された例外を適切に処理したいということです。
xbapを部分信頼モードで実行し、次のようなものを使用してアクセス許可をテストすることで、これを達成できると思いました
CodeAccessPermission p = new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt");
try
{
p.Demand();
// Has access
}
catch (Exception ex)
{
// Does not have access
}
ただし、問題は、プロジェクトのプロパティ ウィンドウの [セキュリティ] タブにある [アプリケーションに必要なアクセス許可] リストに FileIOPermissions アクセス許可を追加していない場合、上記のコードは常に失敗することです...代わりにローカル ファイル システムから実行した場合でも、の Web サーバーを介して。
しかし
FileIOPermissions アクセス許可を追加しても、ユーザーに証明書がインストールされていない場合、コードはヒットせず、xbap は一般的な「Trust Not Granted」エラー画面をスローします...これは望ましくありません。表示したいユーザーに、このエラーを修正するために何ができるかを説明する適切なエラー画面
何か案は?