我如何以编程方式检查.NET中的有效删除(修改)或写入权限?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了我如何以编程方式检查.NET中的有效删除(修改)或写入权限?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1627字,纯文字阅读大概需要3分钟。
内容图文
![我如何以编程方式检查.NET中的有效删除(修改)或写入权限?](/upload/InfoBanner/zyjiaocheng/670/fd0f0a4e936c4393973010755cefd82e.jpg)
抱歉,很长的问题.
我真正感兴趣的是一种以编程方式检查执行中的Windows身份是否具有足够的Windows特权以写入ASP.NET Web服务应用程序中的目录(或文件)的方法.但是我将为给定目录或文件的用户检索有效的删除(修改)特权.问题是我希望能够做到这一点,而不必编写临时文件,也不必执行IO操作和处理异常.
是的,已经对此有一个疑问(请参阅How can I programmatically determine if I have write privileges using C# in .Net?)
通常,我会同意一个公认的答案,那就是最好的方法是仅尝试IO操作并处理任何异常-System.IO方法会抛出System.UnauthorizedAccessException以指示由于特权被拒绝而导致的失败.但是对于UPLOADING文件,我真的很想检查特权,然后再浪费时间和资源来上传数据,因为只有在上传之后我们才可以尝试写入有问题的文件或文件夹.我很遗憾所有通过http上传2GB文件的用户只能在上传完成后被告知他们没有将文件上传到目标位置的权限.
如果您不想执行实际的写操作,则测试写访问权限的通常方法是写一个临时文件.另一个问题有一个答案指出了这一点.这就是我们的代码当前正在执行的操作.但是Windows安全性允许没有删除权限的写访问.只有写访问权限但没有删除权限的用户最终会留下各种未删除的.tmp文件.不,我们不想使用域管理员帐户来重置tmp文件上的ACL,然后将其删除.我一直在使用的方法是使用System.IO.Directory.GetAccessControl(..)或System.IO.File.GetAccessControl(..)检查用户是否具有写特权,并处理各种访问规则和ACE返回…但是与此相关的是,我仍然在处理有效特权方面存在问题-即,在大多数情况下,我还必须在ACE中列出的对对象具有权限的任何组中查找用户的成员身份.必须有一种更简单的方法….不是吗?
解决方法:
很好地赞扬了用户体验,并试图维护干净的程序结构.也许如果您仅上传文件,则可以尝试创建一个与最终2GB文件具有相同名称的空“占位符”文件,然后将其覆盖.这并不完美,因为您仍然可以得到一个空文件,但是非常简单,并且至少比某些替代方法更优雅.
内容总结
以上是互联网集市为您收集整理的我如何以编程方式检查.NET中的有效删除(修改)或写入权限?全部内容,希望文章能够帮你解决我如何以编程方式检查.NET中的有效删除(修改)或写入权限?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。