2009-08-05 18 views
1

私は、ファイルシステムへのアクセスが必要なイントラネットアプリケーションの一部であるXbapアプリケーションを持っています。xbapは権限の不足を正常に処理します

Iveはアプリを完全な信頼にし、有効な証明書で署名し、証明書をieにインポートして、xbapは完全に機能します。

私の問題は私がXBAPを実行することによってこれを達成できると思っていたユーザーは、証明書がインストールされているdoen't場合、私は優雅にアクセス許可が拒否されました例外を処理すること、すなわちファイルシステムIOアクセス

を持っていないです部分信頼モードおよびアクセス権

CodeAccessPermission p = new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt"); 

try 
{ 
    p.Demand(); 
    // Has access 
} 
catch (Exception ex) 
{ 
    // Does not have access 
} 

問題は、あなたが「アプリケーションに必要な権限」にFileIOPermissions権限を追加していない場合は、上記のコードは常に失敗することがあるためにテストするには、次のようなものを使用して、リスト内のプロジェクトのプロパティウィンドウのセキュリティタブで... frを実行してもWebサーバーではなくローカルファイルシステムを使用してください。

しかし

私はFileIOPermissions許可を追加すると、ユーザーは自分のコードのどれもが今までにヒットされていない、証明書がインストールされていないとXBAPは、エラー画面を、一般的な「付与されていないトラスト」をスローした場合...私は望んでいない、私は自分のユーザーにこのエラーを修正するために何ができるかを説明する適切なエラー画面を表示したい

アイデア?

答えて

0

手動でapp.manifestファイルを編集してアプリケーションの最低限のアクセス権を要求することはできますが、理論上はファイルのアクセス権を求めるときにテストコードが必ず失敗するわけではありません。ユーザーがコードに必要な権限を付与していません。

関連する問題