此问题的答案:Declarative Security--what's this? 并没有告诉我太多...坦率地说,根本没有告诉我任何事情。
我看到一篇关于 .NET 性能的博客,其中提到了这一点:
您使用声明式安全性吗?
如果可能,建议您使用声明性安全性而不是命令性安全检查。当前的需求实现为当前正在构建的用于帮助安全审计的安全工具提供了更好的性能和支持。
请注意,如果您的安全检查在方法内是有条件的,则强制安全性是您唯一的选择。
链接:http://weblogs.asp.net/sanjeevagarwal/archive/2009/09/09/net-code-performance-tips-part-1.aspx
“声明性安全”代表什么?谁能举个具体的例子吗?
最佳答案
声明性功能允许程序员在设计时表达意图。这些意图是由语言引擎在内部强制执行的——换句话说,我们看不到它是如何完成的。属性就是一个例子:
[RequireDeletePermission]
public void DeleteFile( string fileName )
{
}
此声明指出,如果没有DeletePermission
,则无法调用DeleteFile
方法。 (这是一个虚构的示例。)运行时将为您强制执行此规则。不需要更多代码。 SQL 权限也属于这一类。
您使用自己的代码强制执行的策略称为强制。您可以使用任何语言机制来完成此操作,但代码本身(而不是内置构造)表达了您的意图。当没有正式约束捕获所需的确切限制时,您将在 SQL 触发器中看到这种情况。
CREATE TRIGGER TR_UPD_fix_image_filename ON products AFTER UPDATE
AS
BEGIN
UPDATE product SET image=itemnumber + '.jpg' WHERE id IN (SELECT id FROM inserted)
END
(好吧,这是一个愚蠢的例子。根据设计,大多数典型情况都可以通过约束来处理。)
关于security - "declarative security"是什么?一般来说,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1401263/