问题标签 [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.

0 投票
2 回答
222 浏览

security - 透明的授权可靠性

我需要一个用于业务逻辑类中的自定义授权的工具。它必须是基于权限的系统,但我无法决定如何将授权规则应用于方法。

我的第一个想法是将自定义属性应用于方法

我的业务逻辑类有接口,所以我可以使用例如 Unity 拦截行为并在当前用户具有所需权限时签入运行时。如果他没有,则抛出异常。

但现在我担心这种方法的可靠性。

通常是对统一容器注入的业务逻辑类的引用。所以没有问题,因为它被配置为应用接口拦截机制。

但是如果一些开发人员会直接实例化我的业务逻辑类呢?然后不会应用拦截,即使当前用户没有执行某些操作的权限,甚至他没有经过身份验证,他也可以调用任何方法。

也有人可以更改统一容器配置,完全关闭拦截扩展。我的授权系统再次不起作用。


我看到 ASP .NET MVC 正在使用类似的授权机制。仅当请求通过标准方式 (IController.Execute) 来时,才应用授权规则。我认为在这种情况下这不是问题,因为控制器的最终用户(网络用户)无法直接访问控制器类。

在我的例子中,业务逻辑的最终用户是开发前端的程序员,他可以有意或无意地搞砸事情——创建业务逻辑类的实例并调用任何方法。

你能给我什么建议?您如何处理此类问题?

谢谢你。

0 投票
1 回答
550 浏览

unity-container - 在 Unity 中,如何使基于 [HandlerAttribute] 的拦截默认对所有内容起作用?

我想[HandlerAttribute]在我的项目中使用 -based 拦截(因为它对新开发人员来说更明显)。但是,除非我new InterceptionBehavior<PolicyInjectionBehavior>()RegisterType.

有没有一种简单的方法可以[HandlerAttribute]在不污染RegisterType呼叫的情况下对所有内容进行检测?

0 投票
2 回答
364 浏览

c# - 将属性复制到 InterfaceInterceptor 生成的代理

假设我有一个通过 WCF 公开的接口:

和一个实现:

我可以Service通过 WCF 发布,一切正常。

现在,我想用 Unity 来截取Service. 我可以为此使用 WCF 行为,但是IService(并Service实现它)有时由内部服务而不是通过 WCF 访问,并且我想要一种拦截机制,该机制将在通过 WCF 访问类和在本地访问类时都适用。

我可以为此使用 Unity InterfaceInterceptor,但是我得到的代理将没有该ServiceBehavior属性,这显然会影响 WCF 行为,因此是需要的。

现在,我可以使用TransparentProxyInterceptoror VirtualMethodInterceptor,它将从我的Service类继承(从而继承属性?),但InterfaceInterceptor在这种情况下,似乎是“正确”的拦截器。毕竟,我在这里使用接口。

查看 Unity 的代码,似乎InterfaceInterceptor用于Reflection.Emit生成代理。如果只使用它TypeBuilder.SetCustomAttributes,它可以简单地从我的原始类型复制属性并将它们应用到它的代理。不过,我找不到 Unity 扩展点来执行此操作。我得到的最接近的是InterfaceInterceptorClassGenerator,但它也没有暴露它的TypeBuilder.

有没有一种简单的方法来扩展InterfaceInterceptor从底层实现复制属性?是否有另一种方法可以将ServiceBehavior指定的Service应用于代理?

0 投票
1 回答
1116 浏览

unity-container - 如何配置 Unity 2.0 策略注入以在配置文件中使用自定义属性匹配规则?

如何配置 Unity 2.0 策略注入以在配置文件中使用自定义属性匹配规则?

我想要的是在统一配置文件中翻译以下代码片段。

0 投票
3 回答
4709 浏览

c# - 使用统一拦截解决异常处理作为横切关注点

我创建了自己的行为如下:

我已正确设置它,以便我的行为按预期受到影响。但是,如果在 getNext() 所做的任何事情中发生任何异常,它都不会击中我的 catch 块。谁能澄清为什么?我并不是真的想解决这个问题,因为有很多方法可以处理异常,更多的是我不明白发生了什么,我想这样做。

0 投票
2 回答
1254 浏览

unity-container - 需要帮助设置 Unity 拦截

首先,我之前从来没有用过Unity...我想通过unity拦截的方式将Tracing/Logging引入我们的项目。
该项目相当大(〜30000个文件)。目标是每次我们尝试调用外部服务时跟踪性能/执行周期。遗憾的是我不能使用任何其他库。
为了熟悉这个概念是如何工作的,我构建了一个我在 MSDN 上找到的小程序;但是我对日志属性的拦截仍然没有触发。我确定我缺少一些配置或/和初始化。我很感激任何帮助。

这是我的主程序:

这是计算器类:

这是我的呼叫处理程序:

最后

*这是我的属性定义:

我还需要添加什么以及在哪里(配置文件或内部构造函数等)才能使此代码正常工作。

0 投票
1 回答
2392 浏览

c# - Microsoft Unity接口拦截和构造函数注入的区别

asp.net unity中的接口拦截和构造函数注入有什么区别?我对 Unity 的 DI 缺乏了解我正在处理一个旧项目和 unity.config,有些像这样,

但有些没有

但是在项目中,这些类和接口以相同的方式工作,就像这样

0 投票
1 回答
2411 浏览

.net - 在 Unity 调用站点拦截方法的完整堆栈跟踪

我们正在研究使用 Unity 来处理带有拦截的日志服务方法。然而,一个问题是调用站点上没有完整的堆栈跟踪。它仅在拦截器调用中可用。

这是一个示例设置:

这是运行该程序的控制台输出:

拦截器中的堆栈跟踪很好,足以在服务级别进行日志记录。但是,我们失去了呼叫站点拦截代理呼叫之后的所有内容;

我可以将异常包装在 ServiceException 或类似的拦截器中,这会将调用堆栈保留在内部异常中,但这会导致尴尬的日志记录和调试检查场景(尽管比完全丢失跟踪要尴尬)。

我还注意到,当我们使用TransparentProxyInterceptor 时,我们或多或少地得到了我们想要的东西,但这被认为比InterfaceInterception 慢,并且会为某些组触发警报。

有没有更简洁的方法可以在代理的调用站点通过 Unity 拦截获得完整的堆栈跟踪?

0 投票
3 回答
12953 浏览

c# - 使用 Unity 拦截所有对 IMyInterface.SomeMethod 的调用

我正在尝试学习 Unity 拦截器,但我很难做到。

假设我有一个这样的界面:

而且我有未知数量的类实现了这样的接口:

我正在寻找一种说法,“对于 IMyInterface 的所有实例(我不想枚举它们),当调用 SomeMethod 时运行我的拦截器。

给我带来麻烦的是类的非枚举。(如果您可以枚举所有类,则有很多示例。)

我已经阅读了类型拦截,但我似乎无法确定它是否会满足我的要求。

那里有任何 Unity 专家知道如何做我正在寻找的东西吗?

0 投票
1 回答
226 浏览

c#-4.0 - 如何在运行时在依赖关系中注入构造函数参数,同时通过统一解决

在下面,如果我试图在运行时在模型的依赖项之一中注入构造函数参数,则不需要使用 Parameter Override 选项。我们还有什么需要做的吗?

映射统一: