如果我有权限获取进程列表,终止进程,获取目录,获取目录中的文件,读取和写入文件等,如何检查我的C#应用程序?谢谢!
答案 0 :(得分:4)
如果您有权限可以毫无问题地执行操作,如果缺少权限,您可以捕获异常并处理它(UnauthorizedAccessException
等)。
答案 1 :(得分:2)
在.NET中,有两种方法可以做到这一点。
System.Security.Permissions namespace包含您需要的属性和类。您可以使用属性并编写声明性代码,或者使用带有命令性代码的类。
例如,对于FileIO,您可以这样做
Declarative : 通常,您会注释一个方法,并且基于SecurityAction异常被抛出的是当前或调用代码没有所述权限
[FileIOPermissionAttribute(SecurityAction.PermitOnly,
ViewAndModify = "C:\\example\\sample.txt")]
Imperative :您可以在此处以编程方式检查权限
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
f.Demand();
}
catch (SecurityException s)
{
Console.WriteLine(s.Message);
}
命令式或声明式,您的代码必须对异常作出反应。 SecurityAction枚举解释了这些是如何工作的,有些检查当前代码是否有权限,有些也检查调用代码。这个枚举有相同的对应方法(Deny,Assert等),可以在命令式代码中使用。
最后,System.Security.Permissions namespace没有任何进程,所以我假设您无法真正检查权限。虽然它适用于.NET 1.1 this security article非常相关。 (虽然没有彩色代码=(