问题标签 [unity-interception]
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.
security - 透明的授权可靠性
我需要一个用于业务逻辑类中的自定义授权的工具。它必须是基于权限的系统,但我无法决定如何将授权规则应用于方法。
我的第一个想法是将自定义属性应用于方法
我的业务逻辑类有接口,所以我可以使用例如 Unity 拦截行为并在当前用户具有所需权限时签入运行时。如果他没有,则抛出异常。
但现在我担心这种方法的可靠性。
通常是对统一容器注入的业务逻辑类的引用。所以没有问题,因为它被配置为应用接口拦截机制。
但是如果一些开发人员会直接实例化我的业务逻辑类呢?然后不会应用拦截,即使当前用户没有执行某些操作的权限,甚至他没有经过身份验证,他也可以调用任何方法。
也有人可以更改统一容器配置,完全关闭拦截扩展。我的授权系统再次不起作用。
我看到 ASP .NET MVC 正在使用类似的授权机制。仅当请求通过标准方式 (IController.Execute) 来时,才应用授权规则。我认为在这种情况下这不是问题,因为控制器的最终用户(网络用户)无法直接访问控制器类。
在我的例子中,业务逻辑的最终用户是开发前端的程序员,他可以有意或无意地搞砸事情——创建业务逻辑类的实例并调用任何方法。
你能给我什么建议?您如何处理此类问题?
谢谢你。
unity-container - 在 Unity 中,如何使基于 [HandlerAttribute] 的拦截默认对所有内容起作用?
我想[HandlerAttribute]
在我的项目中使用 -based 拦截(因为它对新开发人员来说更明显)。但是,除非我new InterceptionBehavior<PolicyInjectionBehavior>()
在RegisterType
.
有没有一种简单的方法可以[HandlerAttribute]
在不污染RegisterType
呼叫的情况下对所有内容进行检测?
c# - 将属性复制到 InterfaceInterceptor 生成的代理
假设我有一个通过 WCF 公开的接口:
和一个实现:
我可以Service
通过 WCF 发布,一切正常。
现在,我想用 Unity 来截取Service
. 我可以为此使用 WCF 行为,但是IService
(并Service
实现它)有时由内部服务而不是通过 WCF 访问,并且我想要一种拦截机制,该机制将在通过 WCF 访问类和在本地访问类时都适用。
我可以为此使用 Unity InterfaceInterceptor
,但是我得到的代理将没有该ServiceBehavior
属性,这显然会影响 WCF 行为,因此是需要的。
现在,我可以使用TransparentProxyInterceptor
or VirtualMethodInterceptor
,它将从我的Service
类继承(从而继承属性?),但InterfaceInterceptor
在这种情况下,似乎是“正确”的拦截器。毕竟,我在这里使用接口。
查看 Unity 的代码,似乎InterfaceInterceptor
用于Reflection.Emit
生成代理。如果只使用它TypeBuilder.SetCustomAttributes
,它可以简单地从我的原始类型复制属性并将它们应用到它的代理。不过,我找不到 Unity 扩展点来执行此操作。我得到的最接近的是InterfaceInterceptorClassGenerator
,但它也没有暴露它的TypeBuilder
.
有没有一种简单的方法来扩展InterfaceInterceptor
从底层实现复制属性?是否有另一种方法可以将ServiceBehavior
指定的Service
应用于代理?
unity-container - 如何配置 Unity 2.0 策略注入以在配置文件中使用自定义属性匹配规则?
如何配置 Unity 2.0 策略注入以在配置文件中使用自定义属性匹配规则?
我想要的是在统一配置文件中翻译以下代码片段。
c# - 使用统一拦截解决异常处理作为横切关注点
我创建了自己的行为如下:
我已正确设置它,以便我的行为按预期受到影响。但是,如果在 getNext() 所做的任何事情中发生任何异常,它都不会击中我的 catch 块。谁能澄清为什么?我并不是真的想解决这个问题,因为有很多方法可以处理异常,更多的是我不明白发生了什么,我想这样做。
unity-container - 需要帮助设置 Unity 拦截
首先,我之前从来没有用过Unity...我想通过unity拦截的方式将Tracing/Logging引入我们的项目。
该项目相当大(〜30000个文件)。目标是每次我们尝试调用外部服务时跟踪性能/执行周期。遗憾的是我不能使用任何其他库。
为了熟悉这个概念是如何工作的,我构建了一个我在 MSDN 上找到的小程序;但是我对日志属性的拦截仍然没有触发。我确定我缺少一些配置或/和初始化。我很感激任何帮助。
这是我的主程序:
这是计算器类:
这是我的呼叫处理程序:
最后
*这是我的属性定义:
我还需要添加什么以及在哪里(配置文件或内部构造函数等)才能使此代码正常工作。
c# - Microsoft Unity接口拦截和构造函数注入的区别
asp.net unity中的接口拦截和构造函数注入有什么区别?我对 Unity 的 DI 缺乏了解我正在处理一个旧项目和 unity.config,有些像这样,
但有些没有
但是在项目中,这些类和接口以相同的方式工作,就像这样
.net - 在 Unity 调用站点拦截方法的完整堆栈跟踪
我们正在研究使用 Unity 来处理带有拦截的日志服务方法。然而,一个问题是调用站点上没有完整的堆栈跟踪。它仅在拦截器调用中可用。
这是一个示例设置:
这是运行该程序的控制台输出:
拦截器中的堆栈跟踪很好,足以在服务级别进行日志记录。但是,我们失去了呼叫站点拦截代理呼叫之后的所有内容;
我可以将异常包装在 ServiceException 或类似的拦截器中,这会将调用堆栈保留在内部异常中,但这会导致尴尬的日志记录和调试检查场景(尽管比完全丢失跟踪要尴尬)。
我还注意到,当我们使用TransparentProxyInterceptor 时,我们或多或少地得到了我们想要的东西,但这被认为比InterfaceInterception 慢,并且会为某些组触发警报。
有没有更简洁的方法可以在代理的调用站点通过 Unity 拦截获得完整的堆栈跟踪?
c# - 使用 Unity 拦截所有对 IMyInterface.SomeMethod 的调用
我正在尝试学习 Unity 拦截器,但我很难做到。
假设我有一个这样的界面:
而且我有未知数量的类实现了这样的接口:
我正在寻找一种说法,“对于 IMyInterface 的所有实例(我不想枚举它们),当调用 SomeMethod 时运行我的拦截器。
给我带来麻烦的是类的非枚举。(如果您可以枚举所有类,则有很多示例。)
我已经阅读了类型拦截,但我似乎无法确定它是否会满足我的要求。
那里有任何 Unity 专家知道如何做我正在寻找的东西吗?
c#-4.0 - 如何在运行时在依赖关系中注入构造函数参数,同时通过统一解决
在下面,如果我试图在运行时在模型的依赖项之一中注入构造函数参数,则不需要使用 Parameter Override 选项。我们还有什么需要做的吗?
映射统一: