问题标签 [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# - 简单的 Injector 异步生命周期范围和安全异常

我有一个AsyncCommandHandlerDecorator<TCommand>LifetimeScopedCommandHandlerDecorator<TCommand>如下所示:

我像这样注册装饰器:

但是,当异步进程尝试调用时,我收到此错误:

尝试通过安全透明方法“LifetimeScopedCommandHandlerDecorator`1.Handle(!0)”访问安全关键方法“SimpleInjector.SimpleInjectorLifetimeScopeExtensions.BeginLifetimeScope(SimpleInjector.Container)”失败。

我尝试在and上使用SecurityCritical属性,但没有帮助。请问你有什么想法吗?LifetimeScopedCommandHandlerDecorator.HandleAsyncCommandHandlerDecorator.Handle

更新:

异常是类型MethodAccessException,这里是完整的堆栈跟踪:

在 MYNAMESPACE.LifetimeScopedCommandHandlerDecorator`1.Handle(TCommand 命令)

在 MYNAMESPACE.AsyncCommandHandlerDecorator`1.<>c_ DisplayClass1.b _0(Object _)

在 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(对象状态)

在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback 回调,对象状态,布尔值 preserveSyncCtx)

在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,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)为我创建文件。

当用户在保护模式下使用 IE8 时会出现问题。

SaveFileDialog.SafeFileName 只返回文件的名称,而不是路径,当我尝试使用 FileInfo 获取该路径时,无论用户选择了什么,我都会得到桌面。

  1. 我尝试了不同的方法,包括使用来自 SaveFileDialog.OpenFile 的流仅将一个字节写入文件 - 没有成功

  2. 我尝试使用反射访问 SaveFileDialog.File.DirectoryName 的私有成员 - 属性标有 [SecurityCritical] 所以我无法访问...

  3. 我现在计划尝试使用 js 调用本机浏览器保存对话框以完成此操作,但我不确定它是否与 Silverlight 对话框不同。

在这个问题上有比我更聪明或更有经验的人吗?:)

谢谢