我创建了一个软件产品,其行为类似于Apache mod_rewrite,但是用于.NET。其中一个要求是支持RewriteLog命令,该命令设置记录路径。这很好,但是我遇到的最大问题是用户设置了IIS用户无权访问的路径。
我想通过检查路径的权限来确保写入权限可用,从而向用户抛出缺少写入权限的异常。
我已经发现我可以尝试将文件写入硬盘进行测试。但这看起来很糟糕,我想找到一种非黑客的做法吗?有人知道我可以调用的一些API是中等信任安全来检查写访问的文件权限吗?
答案 0 :(得分:2)
听起来你正在寻找的是FileIOPermission(在System.Security.Permissions中)类,它允许你在继续之前检查你是否有权限...那说,你仍然检测到你<通过捕获异常,em>不拥有权限;你应该仍然期望在实际的写操作期间出现异常的可能性。
using System.Security.Permissions;
...
public void CheckForWriteRights(string path)
{
FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Write, path);
try
{
permission.Demand();
// the application does have Write rights to the path
}
catch
{
// the application doesn't have rights to the path
}
}