問題タブ [security-critical]

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 投票する
1 に答える
620 参照

c# - シンプルインジェクター非同期ライフタイムスコープとセキュリティ例外

私は以下に示すようにAsyncCommandHandlerDecorator<TCommand>とを持っています:LifetimeScopedCommandHandlerDecorator<TCommand>

そして私はこのようなデコレータを登録します:

しかし、非同期プロセスが呼び出そうとすると、次のエラーが発生します。

セキュリティ透過メソッド「LifetimeScopedCommandHandlerDecorator`1.Handle(!0)」によるセキュリティクリティカルメソッド「SimpleInjector.SimpleInjectorLifetimeScopeExtensions.BeginLifetimeScope(SimpleInjector.Container)」へのアクセスに失敗しました。

との両方でSecurityCritical属性を使用しようとしましたが、役に立ちませんでした。何かアイデアはありますか?LifetimeScopedCommandHandlerDecorator.HandleAsyncCommandHandlerDecorator.Handle

アップデート:

例外はタイプMethodAccessExceptionであり、完全なスタックトレースは次のとおりです。

MYNAMESPACE.LifetimeScopedCommandHandlerDecorator`1.Handle(TCommandコマンド)で

MYNAMESPACE.AsyncCommandHandlerDecorator`1。<>c_DisplayClass1.b _0(Object _) で

System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)で

System.Threading.ExecutionContext.RunInternal(ExecutionContext executeContext、ContextCallbackコールバック、オブジェクト状態、ブール値preserveSyncCtx)で

System.Threading.ExecutionContext.Run(ExecutionContext executeContext、ContextCallbackコールバック、オブジェクト状態、ブール値preserveSyncCtx)で

System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()で

System.Threading.ThreadPoolWorkQueue.Dispatch()で

System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()で

更新2:

属性の有無にかかわらずSecurityCritical、問題が存在します。

0 投票する
0 に答える
740 参照

silverlight - Silverlight の SaveFileDialog から実際のディレクトリ パスにアクセスする

Silverlight アプリケーションと SaveFileDialog に問題があります。基本的に、ファイルを保存したいユーザーパスとファイル名を取得するために SaveFileDialog を使用しています。次に、そのパスを他のアプリケーションの API に渡します (私は Silverlight 5 を Elevated Trust モードで使用しています)。これはファイルを作成します。

ユーザーが IE8 を保護モードで使用すると問題が発生します。

SaveFileDialog.SafeFileName は、パスではなくファイルの名前のみを返します。FileInfo でそのパスを取得しようとすると、ユーザーが選択したものに関係なく、常にデスクトップになります。

  1. SaveFileDialog.OpenFileからのストリームを使用してファイルに1バイトだけ書き込むなど、さまざまなアプローチを試しました-成功しませんでした

  2. リフレクションを使用して SaveFileDialog.File.DirectoryName のプライベート メンバーにアクセスしようとしました - プロパティは [SecurityCritical] とマークされているため、アクセスできません...

  3. これを実現するために、js を使用してネイティブ ブラウザーの保存ダイアログを呼び出すことを計画していますが、Silverlight ダイアログと異なるかどうかはわかりません。

この問題に関して、私よりも賢く経験豊富な人はいますか? :)

ありがとう