2011-11-25 19 views
14

一部のASP.NETコードを.NET 3.5からアップグレードする際に、エラーとして次のコンパイル警告が表示されました。 'System.Security.Permissions.SecurityAction.RequestMinimum'は廃止されました。"'System.Security.Permissions.SecurityAction.RequestMinimum'は時代遅れのコンパイルエラーです。

は属性が蜂はasseblyレベルで適用しています

[assembly: System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.RequestMinimum, Execution=true)] 

また、コードがspecificly ObjectBuilder.WCSFExtensionsライブラリP & PのWebクライアントソフトウェアファクトリを利用します。 また、このコードでは、ロールプロバイダの実装をいくつか提供しています。

このコードは、他のプロジェクトのフレームワークコードとして使用されているので、セキュリティの要求を判断することは困難です。


のでmilionのdolarの質問です:

"System.Security.Permissions.SecurityAction" 列挙型を使用する必要がどのような値はありますか?

また、このセキュリティ属性を適用する方が良い方法がありますか?

答えて

13

完全なコンパイラの警告を読んだり、含まれているリンクにアクセスしましたか? 「ネイキッド」CLRでは、「レガシーモード」スイッチを使用しない限り、.NET 4.0ではCASアクセス権が制限されないため、RequestMinimumの代わりに使用することはできません。アセンブリレベルのSecurityPermissionAttributeは削除する必要がありますが、変更する必要はありません。

MSDNに表示される4.0 CASの変更の詳細については、http://blogs.msdn.com/b/shawnfa/archive/2009/05/21/security-policy-in-the-v4-clr.aspxおよびhttp://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspxを参照してください。

+0

ありがとうございましたNicole、上記の記事は、MSDNのドキュメント(包括的ですが、明示的/明白な声明を出さなかった:属性を削除する)よりも明確な背景を提供します。属性を削除する際にどのような影響があるのか​​よく分かりませんでした。最後に、私は3.5でコードを残すことにしました。 – Schalk

+0

アセンブリレベルのRequestMinimumは、指定されたアクセス許可が与えられていない場合、ホストにアセンブリをロードしないように指示します。実行許可のためのRequestMinimumは、実行許可がない限り、ホストがアセンブリ内のコードを実行しないので、とにかく役に立たないでしょう。アクセス権が与えられていないときの実行時の動作の唯一の違いは、例外の詳細と例外の発生時です。ただし、属性が存在するかどうかにかかわらず、アセンブリ内のコードが実行される前に例外が表示されます。 –

-2

http://msdn.microsoft.com/en-us/library/ee471421.aspx

問題が全体的にアセンブリレベルの宣言型セキュリティは廃止とマークされたことがあるようです。おそらく、これを代わりにメソッドレベルで適用できますか?

関連する問題