这个问题的答案:声明式安全——这是什么? https://stackoverflow.com/questions/1210609并没有告诉我太多...坦率地说,根本没有告诉我任何事情。
我看到一篇关于 .NET 性能的博客,其中提到了这一点:
您使用声明式安全吗?
如果可能,建议您使用声明性安全性而不是命令性安全检查。当前的需求实现为当前正在构建的用于帮助安全审计的安全工具提供了更好的性能和支持。
请注意,如果您的安全检查在方法内是有条件的,则命令式安全性是您唯一的选择。
Link: http://weblogs.asp.net/sanjeevagarwal/archive/2009/09/09/net-code-performance-tips-part-1.aspx http://weblogs.asp.net/sanjeevagarwal/archive/2009/09/09/net-code-performance-tips-part-1.aspx
“声明性安全”代表什么?有人可以举一个具体的例子吗?
声明式功能允许程序员在设计时表达意图。这些意图是由语言引擎在内部强制执行的——换句话说,我们看不到它是如何完成的。一个例子是属性:
[RequireDeletePermission]
public void DeleteFile( string fileName )
{
}
This 宣言指出DeleteFile
如果没有则无法调用方法DeletePermission
。 (这是一个虚构的示例。)运行时将为您强制执行此规则。不需要更多代码。 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
(好吧,这是一个愚蠢的例子。根据设计,大多数典型情况都可以通过约束来处理。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)