問題タブ [code-access-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .Net セキュリティ 無制限のアクセス許可の問題
ここで述べたように、.Netセキュリティの無制限のプロパティが何をするのか混乱しています。または非完全。
私の混乱は、単純な理解における許可のためのものです。許可されたものと許可されていないものの 2 つのステータスしかないはずです。フルと非フルとはどういう意味ですか? 私の混乱は、「無制限」という言葉が、無制限が偽の場合、制限付き/部分的な許可を意味すると私に思わせることです(完全の反対は部分的/制限付きです)。誰かが明確にすることができれば感謝します。
前もって感謝します、ジョージ
asp.net - PortalSiteMapプロバイダー コード アクセス セキュリティ要件
portalsitemapprovider オブジェクトを使用してナビゲーション サーバー コントロールを作成しています。
コントロール CAS で SharePoint オブジェクト モデル アクセスと偽装権限を割り当てました。ただし、これにもかかわらず、サイトマップのルート ノードの子ノードを取得できず、エラーが返されます。
Web アプリを完全信頼で実行するように変更すると、子ノードを取得できます。
したがって、私の質問は、サイトマップ プロバイダー オブジェクトのデータに完全にアクセスするには、どの CAS ポリシーが必要かということです。ルート ノードにアクセスできるのに、現在は子ノードにアクセスできないのはなぜですか?
コード例:
私のアセンブリには、次の CAS 要求があります。
配置マニフェストに適切な IPermission エントリがある。Web アプリのデプロイ後、期待どおりに web.config が WSS_Custom 信頼レベルに更新されます。
何か案は?
ありがとう
.net - localhost (127.0.0.1) で実行されている CAS デモ コードがセキュリティ ゾーンを認識しないのはなぜですか?
コード アクセス セキュリティに関する MCTS 70-536 トレーニング キットの第 11 章のラボを実行しています。XP Proを実行しています。最初のラボでは、さまざまなアクセス許可を確認し、存在する場合はメッセージを報告するアセンブリを作成します。ただし\\\127.0.0.1\c$\ListPermissions.exe
、イントラネットゾーンにいることを認識し、イントラネットのアクセス許可セットを使用するはずなので、実行すると。ただし、すべての権限が付与されているようです。この動作は誰にでもなじみがあるように聞こえますか? そうでない場合、共有から実行したときにアセンブリがどのゾーンにあると考えているかを確認する方法はありますか? この質問の特定の部分があいまいすぎる場合は、お知らせください。言い換えてみます。
c# - コード アクセス セキュリティと SharePoint WebParts
Sharepoint でコード アクセス セキュリティがどのように機能するかについて、私は漠然とした理解を持っています。
カスタム Web パーツを開発し、マニフェストで CAS ポリシーをセットアップしました
これは、Sharepoint サーバーにデプロイされ、ほとんどの場合に機能するときに、 wss_custom_wss_minimaltrust.configに正しく変換されます。
ただし、WebPart を完全に機能させるには、展開後に手動でwss_custom_wss_minimaltrust.configを変更し、権限セットで Unrestricted="true" を設定する必要があることがわかりました
に
Web パーツからユーザー コントロールを読み込んでいるためです。CASを使用してそれを有効にする方法があるとは思いませんが、間違っていることが証明されることを望んでいます。
この修正を手動で行う必要がないように、マニフェストに何かを設定する方法はありますか?
ありがとう
.net - 特別なフォルダーに対する FileIOPermission の宣言
ドキュメントを読み、インターウェブを精査しましたが、カスタム CAS アクセス許可を作成しないと、やりたいことを実行できないようです。だから、これが私の最後の溝の試みです。
クラスで FileIOPermission (属性) を宣言的に定義して、ユーザーの MyDocuments ディレクトリへのアクセス許可を要求したいと考えています。このディレクトリは、すべてのオペレーティング システムで一貫しているわけではなく、通常は Path.GetFolderPath を介して .net にアクセスし (そうだと思います)、SpecialFolder 列挙値を渡します。FileIOPermissionAttribute に「トークン」構文、またはランタイムに伝える類似の機能がありますか?「このシステム上のどこにいても、この SpecialFolder にアクセスできますか?」
そうでない場合は、基本的にそれを行うカスタム Permission オブジェクトを作成する必要があると思います...
ありがとう!
c# - Clickonce アプリを部分信頼にする価値はありますか?
組織のイントラネットで使用する内部顧客向けの ClickOnce アプリの作成を開始しようとしています。セットアップ プロセスを簡単にしたいので、アプリを部分的に信頼できるように開発するのは良い考えだと思いましたが、今はよくわかりません。
ユーザーが具体的に要求したことの 1 つは、(要約すると) TextBox
Cue Text を使用することです。現時点でこれを提供する最も簡単な方法はTextBox
、プロパティとして CueText 機能を含む の単純なサブクラスを使用することです。キューテキスト機能は、への PInvoke 呼び出しを介して行われSendMessage()
ます。
「あはは! 必要SecurityPermission.UnmanagedCode
です。」デフォルトのイントラネット ゾーン セキュリティには、SecurityPermission
私が知る限りアクセス許可が含まれているので、実行してみると、 への呼び出しで爆発しUpdateCueText()
ます。SecurityException
プロパティを評価しようとすると、SecurityException
別の uninspectable がスローされるたびに、b/c のプロパティを検査することもできますSecurityException
。
私は標準的な変更を試みます:
まだ運がありません。しかし、プロジェクト プロパティのセキュリティ設定ページに移動し、SecurityPermission を "Zone Default" ではなく "Included" に設定すると、手動のアサーションさえ必要なく、すべてが発生します。しかしもちろん、顧客は引き続き昇格のプロンプトを受け取ると思います。
私がやろうとしていることを部分信頼環境から行うことは可能ですか? 私はそれが b/c ではなく、意味をなさないのではないかと疑い始めています。任意の部分的に信頼されたコードは、SendMessage を呼び出すことはできませんよね? セキュリティ対策の範囲内で作業するのではなく、セキュリティ対策を回避しようとしてきたことに気づき始めています。
その場合、部分的な信頼を優先してこのアプリを開発する価値はありますか? それとも、スケジュールと UI 要件を満たすために、完全に信頼できるアプリを作成するために、セットアップ時に昇格プロンプトに辞任する必要がありますか?
c# - リストへのアイテムの追加を制限する方法?
Person
プロパティ、父、および子のリストを含むというクラスがあります。
AddChild
methodではなく、 Methodのみを使用して子を追加するようにしたいのですList.Add
が、使用を制限するにはどうすればよいですか?
.net - 「コード アクセス セキュリティ」は実際に使用されていますか?
警告:
この質問が出されてから、.Net および .Net コアの新しいバージョンでは、「コード アクセス セキュリティ」(CAS) が削除または変更されています。
元の質問:
私は70-536 .NET Framework - Application Development Foundation Examの勉強をしている最中です。長年 .net をプログラミングしてきたので、これは難しいことではありません。
ただし、「コード アクセス セキュリティ」(CAS) について学習する必要があります。使用したり構成したりする必要がなかったので、他の誰かが実際の使用方法を見つけたのではないかと思っていました。
CAS を使用したことがあり、それが問題ではなく解決策の一部となった例を挙げてください。
(これまでのところ、他のすべてのことは、私が長年の .NET プログラミングでやらなければならなかったタスクと関係があります)
関連する質問:
- CAS (コード アクセス セキュリティ) を使用する理由 - これには、Microsoft の使用方法を除けば、実際の例はほとんどありません。
- アセンブリやメソッドを保護するためにコード アクセス セキュリティを実際に使用している人はいますか?
- .NET のコード アクセス セキュリティとは- CAS を適切に定義していますが、実際の例は示していません。
- . NET Code Access Security: 便利ですか、それとも複雑すぎますか?
これまでの結果。
CAS は、サード パーティのコードをホストしている場合に役立ちます。たとえば、Web ホスティング会社はこれを使用して、顧客の Asp.net コードがサーバーに損害を与えるのを防ぐことができます。(VBA の代わりに .NET を使用する場合、Office でも使用されます)
これまでのところ、Microsoft アプリケーション以外で使用されている唯一の詳細な例は次のとおりです。
私が最近行ったプロジェクトには、似たようなものがありました。ユーザーがライブラリをアップロードし、パフォーマンスをテストできるようにします (「誰が最高のアルゴリズムを作成するか」)。言うまでもなく、そこには CAS が大いに必要でした。
CAS は、米国国防総省のような JITDC 認定を取得するのに役立つようですが、CAS に実際の価値があるかどうか、または単にボックス ティックであったかどうかはわかりません。
(CAS を使用するホストをバイパスする必要があり、それらのマシンの管理者権限を持っている場合は、アセンブリを GAC に配置するだけです。)
今後の展望として、.net 4 では CAS は少し複雑ではありません。
少なくとも新しい Microsoft 試験には、CAS を含む「基礎」試験はないようです。それが新しい Winforms/WPF 試験に採用されるかどうかはわかりません。
asp.net - SecurityException: タイプ AspNetHostingPermission のアクセス許可の要求が失敗しました
新しい開発用ワークステーションをセットアップし、Visual Studio 2008 から ASP.NET (MVC) アプリケーションを実行すると、SecurityException が発生します。何が問題なのですか?
SMB (Z: としてマウントされた共有ファイル) 経由でデータ ファイルにアクセスしており、実行して完全な信頼を与えています。
完全なトレースバックは次のとおりです。
「/」アプリケーションでサーバー エラーが発生しました。
セキュリティ例外
説明:アプリケーションは、セキュリティ ポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を付与するには、システム管理者に連絡するか、構成ファイルでアプリケーションの信頼レベルを変更してください。
例外の詳細:
System.Security.SecurityException: タイプ 'System.Web.AspNetHostingPermission、System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求が失敗しました。ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[SecurityException: タイプ 'System.Web.AspNetHostingPermission、System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。]
System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0
System.Reflection.Assembly.GetType(文字列名、ブール値 throwOnError、ブール値 ignoreCase) +42
System.Web.UI.Util.GetTypeFromAssemblies(ICollection アセンブリ、文字列 typeName、ブール値 ignoreCase) +145
System.Web.UI. TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) +73
System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) +111
System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) +279バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.4927; ASP.NET バージョン:2.0.50727.4927