问题标签 [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# - 简单的 Injector 异步生命周期范围和安全异常
我有一个AsyncCommandHandlerDecorator<TCommand>
和LifetimeScopedCommandHandlerDecorator<TCommand>
如下所示:
我像这样注册装饰器:
但是,当异步进程尝试调用时,我收到此错误:
尝试通过安全透明方法“LifetimeScopedCommandHandlerDecorator`1.Handle(!0)”访问安全关键方法“SimpleInjector.SimpleInjectorLifetimeScopeExtensions.BeginLifetimeScope(SimpleInjector.Container)”失败。
我尝试在and上使用SecurityCritical
属性,但没有帮助。请问你有什么想法吗?LifetimeScopedCommandHandlerDecorator.Handle
AsyncCommandHandlerDecorator.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
属性,问题都存在。
silverlight - 从 Silverlight 中的 SaveFileDialog 访问真实目录路径
我对 Silverlight 应用程序和 SaveFileDialog 有疑问。基本上我正在使用 SaveFileDialog 来获取他想要保存文件的用户路径以及文件名是什么。然后我将该路径传递给其他应用程序的 API(我在提升信任模式下使用 Silverlight 5)为我创建文件。
当用户在保护模式下使用 IE8 时会出现问题。
SaveFileDialog.SafeFileName 只返回文件的名称,而不是路径,当我尝试使用 FileInfo 获取该路径时,无论用户选择了什么,我都会得到桌面。
我尝试了不同的方法,包括使用来自 SaveFileDialog.OpenFile 的流仅将一个字节写入文件 - 没有成功
我尝试使用反射访问 SaveFileDialog.File.DirectoryName 的私有成员 - 属性标有 [SecurityCritical] 所以我无法访问...
我现在计划尝试使用 js 调用本机浏览器保存对话框以完成此操作,但我不确定它是否与 Silverlight 对话框不同。
在这个问题上有比我更聪明或更有经验的人吗?:)
谢谢