2009-06-17 1 views
0

これまでのところ、中程度の信頼性で動作するWebサイトに関連する問題に遭遇したことはありませんでした。私は今までイントラネットアプリケーションを開発したばかりか、完全に信頼できるホスティング会社を使用したことがありませんでした。しかし、私は最近のプロジェクトに使用するように依頼されているホストは中程度の信頼関係で動いているので、私はこれを実行するアプリケーションを取得しようとしています。いくつかの質問 - 私はWindows XPで開発しています。 IISが中程度の信頼性(デバッグが容易)および/またはweb.config設定のために設定できるか?このテーマに関する豊富な情報があり、学習曲線は急峻です。NonPublicは中程度の信頼性でリフレクションしてパーミッションエラーを引き起こします

第二に、コードをいじると削除の多くの後、私はこの行は、権限エラーを引き起こしていると思う:

のFieldInfoとしてそれぞれのFieldInfoについてはType.GetFieldsで(BindingFlags.InstanceまたはBindingFlags.NonPublicまたはBindingFlags.Public )

誰でもこれが可能な候補であることを明確にすることはできますか。そのNonPublicフラグ?これはコピー&貼り付けられたコードです(コード化ホラーはこれのリスクを強調しています)。私はループがオブジェクトの各フィールドを介してパブリックフィールドと非パブリックフィールドの両方であると想定しています。また、保護されたフィールドは中程度の信頼性でリフレクションすることが禁じられています。

Cheers、Rob。

答えて

3

申し訳ありませんが、Reflection with NonPublicは完全信頼に相当します。

何とか完全な信頼は得られませんでしたが、NonPublicのリフレクションがあった場合、私は自分自身のコード信頼レベル(書き込み可能な文字列など)を変更することができます。

0

私はこれを誰もが答えていないだけでなく、試みて再コーディングするにはあまりにも問題があることを証明していたので、これをクローズとしてフラグを立てます。プログラムはひどく書かれていませんが、オブジェクトマッピングのために反射を非常に重視しています。正直なところ、完全な信頼をサポートするホスティング会社を見つける方が簡単です。

2

はい、XP上のウェブサイトは、メディアの信頼で実行するように設定することができます:

<のsystem.webで>セクションには、以下を追加します。

<!-- Case is important: it's Medium, not medium --> 
<trust level="Medium"/> 

そして、あなたがそこにいます。

ほとんどのホストは、サイトがわずかに高い「中」の信頼設定で実行され、既定値を超えていくつかの追加の権限が設定されています。

あなたが見てみる場合:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web_mediumtrust.config 

あなたが適用されているデフォルト設定が表示されます。

リフレクションは、中程度の信頼に限定されている重要なものの一つである - GetFieldsページの備考から:

If the requested field is non-public and the caller does not have ReflectionPermission to reflect non-public objects outside the current assembly, this method returns a null reference (Nothing in Visual Basic).

これはあなたがおそらくあなたの前にnullをチェックする必要がありますnullを返す可能性を秘めているとiteratingを開始したり、FieldInfoがnull /何も使用していないことを確認してください。

関連する問題