检查我的应用程序是否有读取进程信息和读写文件和目录的权限

本文关键字:文件 读写 权限 信息 应用程序 我的 是否 取进程 读取 检查 | 更新日期: 2023-09-27 18:10:16

如果我有权限获取进程列表,杀死进程,获取目录,获取目录中的文件,读取和写入文件等,如何检查我的c#应用程序?谢谢!

检查我的应用程序是否有读取进程信息和读写文件和目录的权限

如果您有权限可以执行操作而没有问题,如果没有权限,您可以捕获异常并处理它(UnauthorizedAccessException等)

在。net中有两种方法可以做到。

System.Security.Permissions命名空间有你需要的属性和类。您可以使用属性并编写声明性代码,或者将类与命令式代码一起使用。

作为一个例子,对于FileIO,您可以这样做

声明:通常你注释了一个方法,并且基于SecurityAction抛出异常,如果当前或调用代码没有上述权限

[FileIOPermissionAttribute(SecurityAction.PermitOnly, 
           ViewAndModify = "C:''example''sample.txt")]

命令式:在这里你可以编程检查权限

FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
  f.Demand();
}
catch (SecurityException s)
{
  Console.WriteLine(s.Message);
}

命令式或声明式,您的代码必须对异常作出反应。SecurityAction enum解释了它们是如何工作的,有些检查当前代码是否有权限,有些也检查调用代码。该枚举具有相同的对应方法(Deny,Assert等),可在命令式代码中使用。

最后,System.Security.Permissions名称空间没有任何关于进程的内容,所以我认为您无法在这里真正检查权限。尽管它是针对。net 1.1的,但这篇安全性文章还是非常相关的。(虽然没有彩色代码=(