问题标签 [elevated-privileges]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 临时授予 ASP.NET 代码提升的管理员权限
我们正在尝试通过 Web 管理控制台在服务器上运行一组管理任务。控制台以当前登录用户身份运行,并且仅允许本地计算机上的管理员登录。现在它适用于大多数情况,但我们在 UAC 下运行时遇到问题。
第一个问题是一个阻止程序:管理员似乎没有获得“BUILTIN\Administrators”角色,即使他们是本地机器上的管理员。这甚至可以阻止他们进入管理控制台,因为我们使用 web.config<allow roles="BUILTIN\Administrators">
符号来指定安全性。我怀疑这里唯一的解决方案是将 ASP.NET 应用程序作为 SYSTEM 运行,或者允许更多用户并在代码中进行更精细的权限检查。还有其他想法吗?有没有办法将提升请求注入内置的 ASP.NET 权限检查?
另一个问题是我们想要运行一些需要管理员权限的命令。访问该站点的用户是管理员,并且被正确模拟,但是当我们生成一个进程时,由于缺乏管理员权限而失败。明确的答案是在该命令的持续时间内提升。有一些解决方案可以让我通过模拟特定的用户名和密码来临时提升权限,但我不希望不必向已经验证的用户询问他的密码。提升当前用户有什么技巧吗?
(我可以理解为什么 ASP.NET 团队可能会试图让这变得困难,这样网页就不能利用管理员访问网站的隐形优势......但肯定必须有某种方式以编程方式声明您的代码需要完整的管理员权限,适当地警告 IIS 管理员其意图?)
Windows Forms 应用有一系列答案,例如: 如何仅在需要时提升权限? 和File.Exists 从网络共享返回 false 但我希望找到一个可以与 ASP.NET 一起使用的...
谢谢史蒂夫
c++ - 如何以编程方式获得 root 权限?
我正在编写一些软件(在 C++ 中,用于 Linux/Mac OSX),它以非特权用户身份运行,但在某些时候需要 root 特权(以创建新的虚拟设备)。
以 root 身份运行这个程序不是一个选项(主要是为了安全问题),我需要知道“真实”用户的身份(uid)。
有没有办法模仿“sudo”命令行为(询问用户密码)来临时获得 root 权限并执行特定任务?如果是这样,我会使用哪些功能?
非常感谢您的帮助 !
c# - 如何强制我的 .NET 应用程序以管理员身份运行?
在客户端计算机上安装我的程序后,如何强制我的程序在Windows 7 上以管理员身份运行?
c# - 帮助解决创建 SharePoint 列表的错误(可能是由于权限问题)
尝试激活 Web 部件时出现错误。它在一个设置中激活良好,但在另一个设置中失败。两者的管理员。似乎它失败了,因为它无法创建列表。错误是:消息:值不能为空。堆栈跟踪:在 Microsoft.Sharepoint.SPRoleAssignment..ctor 在 ClientRequestHandler.CreateList(...
c# - 如何以编程方式编辑 Windows 7/Server 2008 中的主机文件?
我正在编写一个小 WPF 实用程序来管理主机文件中的条目以用于开发目的。您可能知道主机文件受较新的操作系统(Win 7/2008/Vista)保护。
我已在我的应用程序中添加了一个清单,以将 requestedExecutionLevel 设置为“requireAdministrator”,详见此处(使用“简单方法”)和此处的相关问题。
不幸的是,这对我不起作用。当我启动应用程序时没有提升提示,并且为主机文件调用 File.AppendText 仍然会导致 System.UnauthorizedAccessException 被抛出:“访问路径 'C:\Windows\System32\drivers\etc\hosts' 是否认。”
HostsChanger.exe.manifest:
有任何想法吗?
c++ - DuplicateHandle:需要OpenProcess,但是访问被拒绝
我使用 Windows 挂钩向我的应用程序发送消息,系统上的每个应用程序都会通知该应用程序有关 Windows 事件的信息。
为了执行消息参数的编组,我使用共享内存。外部进程调用DuplicateHandle,但为了与我的应用程序实例共享句柄,它应调用具有 PROCESS_DUP_HANDLE 权限要求的OpenProcess 。
实际上,每个应用程序都可以使用这种架构发送消息,即使我需要为外部进程启用 SeDebugPrivilege。它实际上可以工作,除了没有 SeDebugPrivilege 令牌的“explorer”进程......
AdjustTokenPrivileges的文档指出:
AdjustTokenPrivileges 函数无法向访问令牌添加新权限。它只能启用或禁用令牌的现有权限。要确定令牌的权限,请调用 GetTokenInformation 函数。
所以,问题是......如何将 SeDebugPrivilege 令牌添加到“explorer”进程,或者如何允许“explorer”进程调用OpenProcess(PROCESS_DUP_HANDLE, FALSE, pId)
?
c# - 提升权限不适用于 UseShellExecute=false
我想启动一个具有提升权限但具有隐藏窗口的子进程(实际上是相同的控制台应用程序)。
我接下来做:
这有效:
但是UseShellExecute = true
创建一个新窗口,我也无法重定向输出。
所以当我下一步做的时候:
这不会提升权限,并且上面的代码返回 false。为什么??
sharepoint - 在提升的安全上下文下更改 SharePoint PublishingWeb 失败,为什么?
我在更新 RunWithElevatedPrivileges 下的 SharePoint publishingWeb 属性时遇到问题。它失败,在此行出现异常“此页面的安全验证无效”:“pubWeb.IncludeInCurrentNavigation = false;”。下面是我试图运行的代码。通常你可以设置 AllowUnsafeUpdates = true,但是 publishingWeb 没有这个特殊属性。
我的问题是在提升的上下文中更新 publishingWeb 属性的正确方法是什么?
c# - 从提升的进程启动非提升的进程
我的程序作为提升的进程运行,并使用Process.Start()
.
出于安全原因,我想以非提升的方式运行这些新进程。
怎么做?
c# - 如何在 Windows 7 上调用具有提升权限的 Win32 API
我们刚刚发现调用 Win32SetDateTime
函数的代码需要在 Windows 7 中以提升模式运行,即即使以管理员身份登录,仍然必须选择以管理员身份运行 Set Date 代码才能调用更改日期.
我可以在代码中做些什么来始终在提升的权限下调用此函数吗?