如何限制允许的方法调用者

本文关键字:方法 调用者 何限制 | 更新日期: 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。即在顶层进行授权,而不是在业务层。