代码访问安全性

时间:2010-04-24 23:06:20

标签: c# asp.net clr

为什么我需要获得Demand权限?为什么它不能简单地失败(注释掉.Demand()调用)?

参考:http://support.microsoft.com/kb/315529 谢谢!

try 
{
// Demand the permission to access the C:\Temp folder.
permFileIO.Demand();
resultText.Append("The demand for permission to access the C:\\Temp folder succeeded.\n\n");
}

- 编辑1 -

我在某处看到CAS正在消失,因为配置起来很痛苦。这是对的吗?

2 个答案:

答案 0 :(得分:2)

如果你想在进入需要权限的调用之前失败,你也可以声明性地修饰调用方法,这在方法被调用之前就会失败。它还使代码更清晰,更容易调试。

[FileIOPermission(SecurityAction.Demand, Write=@"C:\Temp ")]
public void MyTempFunction(){....

答案 1 :(得分:1)

您不需要需求。

如果你删除它并且你有安全限制,它只会引发安全例外。

需求的优点是运行时可以确定应用程序所需的确切权限(例如,它需要特定目录的FileIOPermission),然后让用户/ admin配置它。