- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在读取或写入(创建文件)到随机文件夹时,我收到随机用户关于 UnauthorizedAccessException
的随机报告。通常放在自己的Documents文件夹中。而更多的问题是,当应用程序无法将其数据写入{USER}\AppData\Roaming
时。
应用程序以管理员身份运行**,通常报告来自 Windows 7 和 Windows 8 用户。
有没有办法在不手动设置权限的情况下解决这个问题。
**判断应用是否以管理员身份运行
AppDomain myDomain = Thread.GetDomain();
myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
boolean isRunningasAdmin = myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
编辑:在 app.manifest 中
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
最佳答案
关于这个问题:是否可以在尝试写入磁盘时避免与权限相关的异常?
简而言之,答案是:是的,这可以通过使用模拟来实现。
Impersonation is the ability of a thread to execute using a different security information than the process that owns the thread. Typically, a thread in a server application impersonates a client. This allows the server thread to act on behalf of that client to access objects on the server or validate access to the client's own objects. [SOURCE: A Complete Impersonation Demo]
正如 Aasmund Eldhuset 强调的那样,以管理员身份运行不保证您将拥有访问文件系统的适当权限。
作为健全性检查,您可以创建一个简单的应用程序以确保一切都按预期工作。
我建议您对用户反馈持保留态度,因为用户对他们遇到的问题提供不准确或不完整的描述的情况并不少见。
在您的场景中,我会让您的应用程序在应用程序启动时尝试写入有问题的目录/文件夹。如果写入失败,那么您可以将相关信息(例如执行写入操作的用户的名称)记录到事件日志(例如文本文件)中,以备日后查看。
关于c# - UnauthorizedAccessException 即使应用程序以管理员身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29887832/
我在使用 NUnit 和 WatiN 运行任何测试时收到 UnauthorizedAccessException 错误: Test Test.IndexTests.Can_Do' failed: Wa
使用这段代码: DirectoryInfo info = new DirectoryInfo("\\s01\sharedfolder\folder"); FileInfo[] files = info
我正在创建一个应用程序来查找文件中的重复项。当我搜索文件时: try { string[] allFiles = Directory.GetFiles( directoryPa
我在指定位置创建一个目录,然后尝试使用 StreamWriter 访问它,但它一直显示“访问被拒绝。” 有人知道会发生什么吗? 我的代码是这样的: if (!Directory.Exists(
根据 MSDN,Directory.Exists如果目录不可访问,则应返回 false。我有一个 Directory.Exists 返回 true 但 Directory.GetFiles 抛出 Sy
我正在尝试遍历开始菜单上的项目,但我一直收到 UnauthorizedAccessException。我是目录的所有者,我的用户是管理员。 这是我的方法(它在一个 dll 项目中): // root
我有 ASP Web API,我正在尝试从那里的调用返回一个文件。 在我的服务器上,我不断收到错误: System.UnauthorizedAccessException: Access to the
我有一个简单的方法来计算目录和其中所有文件的大小。这是代码: using System; using System.IO; namespace MyProject.Libs { public
当我试图在 Registry.ClassesRoot 中创建一个子项时,我得到一个 System.UnauthorizedAccessException!我用的是win7。有谁知道为什么吗? 最佳答案
我正在 COM 端口上进行 C# 编码,我无法理解这个异常的含义,我试图在我的书和网上找到答案,但没有好消息。 所以我的问题是如何找到正确的异常名称的定义(我从网上复制了这段代码)。2. 这个前任是什
在读取或写入(创建文件)到随机文件夹时,我收到随机用户关于 UnauthorizedAccessException 的随机报告。通常放在自己的Documents文件夹中。而更多的问题是,当应用程序无法
我正在编写回归测试,需要手动将文件从一个位置移动到另一个位置。每次发生 UnauthorizedAccessException 时,我假设这与必须从中移动文件的文件夹的权限有关?我检查了文件属性,它没
我在尝试打开互斥量时遇到此异常(它只是有时发生;大多数调用都是成功的): System.UnauthorizedAccessException: Access to the path 'Global\
我有一个应用程序正在通过一些文件查找旧数据。为了确保我们不会破坏好的项目,我将文件复制到一个临时位置。我检查的一些目录是源代码目录,它们有 .svn 文件夹。我们使用 Subversion 来管理我们
偶尔,我的一些集成测试会因上述消息而失败。我正在使用下面的代码来准备端口。 for(int i = 0; i < 5; i++) {
我正在尝试通过这种方式从文件夹中获取所有文件: try { string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedP
这个问题在这里已经有了答案: DeleteSubKey UnauthorizedAccessException (1 个回答) 关闭 5 年前。 我有一个 C# 应用程序,我正在尝试通过注册表编辑服
我正在尝试编写一个快应用来修改一些注册表项。当我通过 RegEdit 浏览时,我可以毫无问题地修改和删除 key 。 但是当我尝试使用 RegistryKey.DeleteSubKey() 时,它会抛
我正在研究如何将 Windows 上下文菜单中的快捷方式 添加到我的应用程序。我遇到了this文章,我试过了。这是它用于在注册表中创建 key 的代码。 private void btnAddMenu
在我拥有的 Windows 应用程序中,我在注册表中进行了一些更改,例如删除特定键,在某些测试场景中,例如在安装了 UAC 的 Vista 机器中,我得到了 System.UnauthorizedAc
我是一名优秀的程序员,十分优秀!