在C#4.0+中,是否有一种基于方法属性限制方法的允许调用者的好方法?
我天真地认为这就是CAS的全部内容 - 现在.NET 4.0中的变化似乎表明新的CAS只适用于程序集级别,而且只适用于沙盒应用程序......这不是'我之后的事情。
我想象这样的事情:
[MyDangerousPermission]
public void DoSomethingDangerous()
{
. . .
}
并在另一个班级或集会中:
[MyDangerousDemand]
public void AllowedCaller()
{
DoSomethingDangerous();
}
并且在调用堆栈中没有[MyDangerousDemand]
的情况下,对DoSomethingDangerous()
的任何调用都将失败(例如,抛出SecurityException
)。
不可能?
(我的主要应用程序是在网络应用程序中,以防万一)。
答案 0 :(得分:0)
我们仍然使用CAS作为您的指定并且没有遇到任何麻烦。查看PrincipalPermissionAttribute
。
但是,如果它是一个Web应用程序,您应该使用您正在使用的框架创建的属性之一。对于ASP.NET MVC,它被称为AuthorizeAttribute
。即在顶层而不是在业务层中进行授权。