問題タブ [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.
c# - シンプルインジェクター非同期ライフタイムスコープとセキュリティ例外
私は以下に示すようにAsyncCommandHandlerDecorator<TCommand>
とを持っています:LifetimeScopedCommandHandlerDecorator<TCommand>
そして私はこのようなデコレータを登録します:
しかし、非同期プロセスが呼び出そうとすると、次のエラーが発生します。
セキュリティ透過メソッド「LifetimeScopedCommandHandlerDecorator`1.Handle(!0)」によるセキュリティクリティカルメソッド「SimpleInjector.SimpleInjectorLifetimeScopeExtensions.BeginLifetimeScope(SimpleInjector.Container)」へのアクセスに失敗しました。
との両方でSecurityCritical
属性を使用しようとしましたが、役に立ちませんでした。何かアイデアはありますか?LifetimeScopedCommandHandlerDecorator.Handle
AsyncCommandHandlerDecorator.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
、問題が存在します。
silverlight - Silverlight の SaveFileDialog から実際のディレクトリ パスにアクセスする
Silverlight アプリケーションと SaveFileDialog に問題があります。基本的に、ファイルを保存したいユーザーパスとファイル名を取得するために SaveFileDialog を使用しています。次に、そのパスを他のアプリケーションの API に渡します (私は Silverlight 5 を Elevated Trust モードで使用しています)。これはファイルを作成します。
ユーザーが IE8 を保護モードで使用すると問題が発生します。
SaveFileDialog.SafeFileName は、パスではなくファイルの名前のみを返します。FileInfo でそのパスを取得しようとすると、ユーザーが選択したものに関係なく、常にデスクトップになります。
SaveFileDialog.OpenFileからのストリームを使用してファイルに1バイトだけ書き込むなど、さまざまなアプローチを試しました-成功しませんでした
リフレクションを使用して SaveFileDialog.File.DirectoryName のプライベート メンバーにアクセスしようとしました - プロパティは [SecurityCritical] とマークされているため、アクセスできません...
これを実現するために、js を使用してネイティブ ブラウザーの保存ダイアログを呼び出すことを計画していますが、Silverlight ダイアログと異なるかどうかはわかりません。
この問題に関して、私よりも賢く経験豊富な人はいますか? :)
ありがとう