2009-05-04 12 views
0

ネットワーク共有からアプリケーションを実行しているときに、このアプリケーションはパス "C:\ temp"が存在するかどうかを確認してtrueまたはfalseを返します。コードがネットワーク共有から実行されているときにローカルフォルダにアクセスする方法

コードがローカルで実行されている場合は問題ありません。ネットワーク共有から実行されている場合、そのフォルダがローカルに存在する場合でも、結果はfalseになります。

コードが

2.0これは.NETフレームワークのセキュリティポリシーの設定に関係しています

答えて

0

ありがとうございフレームワーク上のC#です。既定では、イントラネットゾーン(UNCパスが割り当てられている)から実行されているコードは完全に信頼されておらず、一部のコードが成功するように制限されています。

必要に応じて設定ウィザードを使用してこれらの設定を変更できます。 Visual Studioのコマンドプロンプトを開き、 "Configwizards.exe"を実行します。

CASの設定については、this linkも参照してください。

2

これを確認するには、昇格された権限で実行する必要があります。それはCode Access Securityモデルの一部です。

ハードコードされたパスではなく、Environment.GetFolderPathで返されたアプリケーションデータフォルダを使用することをお勧めします。

+0

私は通常、OPが望むものとは逆の解決策を提案する回答をupvoteしませんが、この問題が何度も起こり、開発者が実際にユーザー固有のストレージパスを使い始めることが重要だと思っています。 – overslacked

+0

@overslacked:まあ、私は彼に、この問題(CAS)の原因と同様に(高められたprivsの下で走る)そこに着くように言った...私はちょうどそれがこの場合 "ベスト"オプションだとは思わないその後の提案。 –

関連する問題