問題タブ [partial-trust]

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.

0 投票する
3 に答える
8614 参照

.net - .NET の部分的に信頼されたアセンブリ/アプリケーション/コード/などとは何ですか?

誰か説明してくれませんか?私はインターネット上で何も見つけることができませんでした.すべてが何らかの方法でそれを行う方法について語っていますが、それが何であるかを正確に述べているものは何もありません.

また、完全に信頼されたアセンブリとは何ですか? また、それらは互いにどのように異なるのでしょうか?

私は MS 認定試験を受けていますが、これは私が理解できない唯一のトピックです。

編集:ありがとう。これで、.NET のセキュリティについて理解が深まりました。認定試験に合格することができました。

0 投票する
2 に答える
12342 参照

.net - 部分的な信頼環境でapp.configのsystem.netセクションを使用するにはどうすればよいですか?

Clickonceを使用してWCFアプリケーションを展開しました。httpsを使用してサーバーに接続し、すべてが正常に機能します

次のコードのおかげで、必要に応じてデフォルトのプロキシを使用します。

フルトラストモードでは、すべてが正常に機能します

これで、セキュリティ設定を部分信頼に設定した場合、プロキシが含まれていなくても正常に機能しますが、企業環境でソフトウェアを起動しようとすると、プロキシは自動検出されなくなります。

私の理解から:

次のようにrequirePermission属性が設定されていない限り、configSectionsは部分信頼環境では解析されなくなります。


この属性を設定すると、System.Configuration.ConfigurationExceptionがスローされ、次のエラーメッセージが表示されます。

セクションまたはグループ名'defaultProxy'はすでに定義されています。これに対する更新は、それが定義されている構成レベルでのみ発生する可能性があります。

'defaultproxy'セクションは、実際にはmachine.configファイルですでに定義されています。

ただし、requirePermissionが設定されていない限り、これは問題にはならないようです。言い換えれば、エラーメッセージはむしろ読むべきであるようです:

セクションまたはグループ名'defaultProxy' は、別のrequirePermission設定ですでに定義されています。これに対する更新は、それが定義されている構成レベルでのみ発生する可能性があります。


誰かが同じ問題に遭遇しましたか?部分信頼モードでWCFアプリケーションの既定のプロキシをサイレントに使用することは可能ですか?プログラムでプロキシを設定しようとしましたが、成功しませんでした

wshttpbindingのuseDefaultWebProxy属性は最初から直接設定されますが、「system.net.defaultProxy」セクションが正しく定義されていないと、部分的または完全な信頼環境では機能しないようです。

クライアントにローカルのmachine.configファイルを更新して、必要なdefaultProxy useDefaultCredentials = "true"を追加するように依頼することはできると思いますが、展開が容易になるわけではありません。

0 投票する
2 に答える
350 参照

.net - 部分信頼環境 (FileIOPermission なし) でアセンブリのバージョン番号にアクセスするにはどうすればよいですか?

実行時にアセンブリのバージョン番号にアクセスしようとしています。

そのために使用しているコードには、付与したくない FileIOPermission が必要です (インターネット ゾーンにいます)。

昇格を必要としないバージョン番号にアクセスする別の方法はありますか?

0 投票する
1 に答える
248 参照

.net - 部分的に信頼できる.NETアプリケーションからタスクバーをフラッシュするにはどうすればよいですか?

タスクバーをフラッシュしたいのですが(たとえば、ここで説明します)、アプリケーションが実行されているセキュリティコンテキストでFlashWindowEx(またはその他のこと)をP/Invoke できません。

タスクバーを点滅させる別の方法はありますか?そうでない場合、ユーザーの注意を引くための私のオプションは何ですか?

0 投票する
2 に答える
227 参照

.net - 部分信頼シナリオでの DataContract のコレクション

シリアライゼーションのための DataContracts の設計の 1 つの点で、私はかなり混乱しています。

オブジェクト (Customer など) があり、コレクション プロパティ (Addresses という名前の AddressCollection など) を公開するとします。フレームワークの設計ガイドラインでは、プロパティのパブリック ミューテーターを公開しないように規定されています。つまり、コレクション プロパティには get と no set が必要であり、代わりに public set メソッド (public void SetAddresses(IEnumerable< Address> addresses)) を使用する必要があります。

しかし、そのオブジェクトをシリアル化する必要があり、部分信頼環境になると予想される場合、適切に逆シリアル化できるように、パブリック セッターをプロパティに追加する必要がありますか?

さらに、シリアル化時にコレクションに何も含まれていない場合、デフォルトのコンストラクターは DataContractSerializer によって呼び出されないため、コレクションがまったく設定されておらず、null のままになっていると確信しています。OnSerializing 属性を使用してコレクションを初期化することもできますが、部分信頼シナリオではそのメソッドもパブリックにする必要がありますね。そして、それはさらに醜いです。

ここで適切なガイダンスを知っている人はいますか?

どうもありがとう。

0 投票する
2 に答える
347 参照

.net - 部分的に信頼された発信者属性を必要とするアセンブリを検出する方法は?

CodePlex から Web プロジェクトをダウンロードしましたが、Application_Start で次のエラーが発生します。

System.Security.SecurityException: そのアセンブリは、部分的に信頼された呼び出し元を許可しません。

このプロジェクトは、他のオープン ソース プロジェクトの他のいくつかのアセンブリを参照しています。私の理論では、これらの 1つには AllowPartiallyTrustedCallers属性が設定されていません (CodePlex プロジェクトのすべてのアセンブリに設定されています)。

この属性が設定されているアセンブリと設定されていないアセンブリを確認するにはどうすればよいですか?

0 投票する
3 に答える
1825 参照

.net - 部分信頼環境 (SecurityPermission) で Marshal.GetHRForException を呼び出す

try..catch 内でストリームを読み取る IO コードがいくつかあります。IOException をキャッチし、キャッチ内でSystem.Runtime.InteropServices.Marshal.GetHRForException()を呼び出し て、HResult に基づいてさまざまなアクションを実行しようとします。このようなもの:

アセンブリは署名され、AllowPartiallyTrustedCallersAttributeでマークされています。

しかし、ASP.NET 内で trust="medium" を指定してこのコードを実行すると、次の例外が発生します。

いくつかの質問:

  1. GetHRForException が中程度の信頼では許可されていないアンマネージ コードを呼び出すため、例外が発生していると思います。正しい?
  2. この例外は、GetHRForException の実行時ではなく、メソッドが JIT されているときにスローされます - 正しいですか? (スタックトレースは私の方法を示していますが、IO 例外が発生していないことは 99% 確信しています)
  3. その場合、許可されていない GetHRForException (アンマネージ コード) を呼び出さないように、部分信頼環境で動作を変更する方法はありますか? つまり、コードが GetHRForException() を呼び出す必要があるかどうかを実行時に評価しながら、コンパイル時に JIT を成功させるにはどうすればよいでしょうか? このようなもの:

アクセス許可が利用可能かどうかをテストするためのランタイム メカニズムがあると思いますが、それを見つけることができませんでした。


編集このブログ記事は答えですか?Microsoft の ShawnFa は、LinkDemand によって保護されたメソッドの周りで try ... catch(SecurityException) を実行できないと述べています。MethodA() が MethodB() を呼び出し、MethodB() が完全信頼の LinkDemand でマークされている場合、LinkDemand は MethodA が Jit されているかどうかでチェックされます。したがって、SecurityException を回避するには、Marshal.GetHRForException を別のメソッドに抽出する必要があります。あれは正しいですか?

私のコードに適用すると、MethodA() は Read を呼び出すコードである可能性があり、キャッチで GetHRForException() を呼び出そうとします。GetHRForException は MethodB() です。LinkDemand は、MethodA() が JIT されたときに評価されます。(この LinkDemand は、信頼度が中程度の ASP.NET シナリオでは失敗します)。GetHRForException を新しいメソッド MethodC() に移動し、命令型の permission.Demand() が成功した後にのみ条件付きで MethodC() を呼び出すと、理論的には JIT 時に SecurityException を回避できるはずです。 permission.Demain() が成功した後にのみ JIT されます。

0 投票する
2 に答える
581 参照

linq - 部分信頼環境のエンティティ フレームワーク

Entity Framework が部分信頼をサポートしていることは知っています。私は個人的にそれについてブログを書きました。

正常に動作していました。テストしましたが、問題ありませんでした。この件に関する私の投稿に添付されているサンプルをダウンロードすると、デフォルトの部分信頼では動作しなくなります!!!

失敗の位置でリフレクターを使用してSystem.Data.Entityアセンブリを掘り下げたとき「System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle、MethodInfo&setterMethodInfo、Type&realType」)次のようなRuntimeMethodHandle.Valueプロパティを呼び出すことに気付きましたget アクセサーの属性 "[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)]"

そこで、中程度の信頼構成に移動し、別のフラグ「UnmanagedCode」を追加しました""

アプリケーションを再度テストしたところ、問題なく動作しました。

いったいこれは何のことだ!? 以前は機能していたのに、なぜ今は機能していないのですか! 何か足りない!!!System.Data.Entity は、VS.NET 2008 SP1 へのいくつかの頻繁な更新の投稿中に変更され、最新のものは 2009 年 8 月に作成されました。その日付以前は正常に動作していたためです。

ですから、これを明確にして、私が間違っているか、欠けているものがあれば教えていただければ幸いです。

0 投票する
1 に答える
621 参照

wpf - 部分信頼でスタンドアロン WPF アプリケーション (非 XBAP) を実行することは可能ですか?

ウィンドウで単純なグラフィック以外のものを使用しなければ、部分信頼で (少なくともイントラネットでは) スタンドアロンの WPF アプリケーションを実行できると思いました。しかし残念なことに、最も単純な Hello World アプリケーションでも、部分信頼で実行すると、メイン ウィンドウの読み込みに失敗し、クラッシュします。

なぜこれが起こるのか、そしてそれが理論的に可能かどうかについて、誰かが光を当てることができますか?

PS Simplest コンソール アプリケーションはイントラネット ゾーンで部分信頼で実行でき、Winforms はイントラネットとインターネットの両方で実行できます (ただし、イントラネット ゾーンで実行するとセキュリティ警告が表示されます)。

0 投票する
1 に答える
683 参照

xbap - 部分信頼 XBAP アプリから画像を保存するには?

いくつかの画像を表示する XBAP アプリがあり、ユーザーはそれらの一部をディスクに保存したいと考えています。しかし、私の XBAP アプリは部分信頼モードで実行されるためSaveFileDialog、ファイル システムにアクセスできないことは言うまでもなく、開始できません。

この場合、スタック オーバーフローが推奨する画像をディスクに保存する方法は何でしょうか?