1
6
这里的问题是您混淆了代码访问安全性(CAS)和文件系统权限。前者是仅适用于CLR进程的限制,而后者是操作系统级别的限制。这两种安全方法彼此独立(尽管文件系统信息可能有助于CAS策略)。
在这种情况下
在文件系统级别(不包括CAS),在hand之前尝试验证操作是否会成功的做法实际上是徒劳的。根本无法正确执行此操作,因为这么多外部实体可以在检查和尝试访问之间更改文件系统。更可靠的做法是尝试访问文件并捕获由于访问失败而导致的异常。 这是我在这个问题上写的一篇详细的博客文章的链接 |
2
4
别这么做。虽然JaredPar对于为什么在这种情况下不起作用有正确的答案,但我想进一步解释他的最后一句话:整个练习都是徒劳的。 文件系统权限是 不稳定的 . 它们可以以完全独立于应用程序代码的方式从一个时刻更改到另一个时刻,这包括检查权限和尝试写入文件之间的时刻。虽然权限不会经常更改,但在这个关键时期,文件甚至可能被删除或重命名。 关键是,虽然很小,但在那个小窗口中发生某些事情的可能性很高,您需要花时间来构建 好的 此代码的异常处理程序。一旦你这样做了,所有这些工作,你通过检查文件权限突然变得没有意义。 换句话说,查看您是否有权写入文件的正确方法是 实际上,尝试写入文件。 |
Lassi · 在Go web app路由器中检查用户权限的最佳方法 6 年前 |
odysseus · 对非IBMid用户的现有权限没有输出? 6 年前 |
Matt Prigge · 以管理员身份运行时提升到高完整性级别 6 年前 |
D Mac · 在AWS S3中,如果文件已经存在,如何授予帐户权限 6 年前 |