如何限制允许的方法调用者
本文关键字:方法 调用者 何限制 | 更新日期: 2023-09-27 18:02:36
在c# 4.0+中,是否有一种基于方法属性来限制允许的方法调用者的好方法?
我天真地认为这就是CAS的全部内容——现在。net 4.0中的变化似乎说新的CAS只应用于汇编级别,并且只应用于沙盒应用程序…这不是我想要的。
我想象的是这样的:
[MyDangerousPermission]
public void DoSomethingDangerous()
{
. . .
}
和在另一个类或程序集中:
[MyDangerousDemand]
public void AllowedCaller()
{
DoSomethingDangerous();
}
和没有[MyDangerousDemand]
在调用堆栈中的某处,任何对DoSomethingDangerous()
的调用都将失败(例如抛出SecurityException
)。
不可能吗?
(我的主要应用程序是在一个web应用程序,以防它的重要性)。
我们仍然按照你的要求使用CAS,没有遇到任何麻烦。看PrincipalPermissionAttribute
然而,如果它是一个web应用程序,你可能应该使用你正在使用的框架创建的属性之一。ASP。它被称为AuthorizeAttribute
。即在顶层进行授权,而不是在业务层。