【问题标题】:Can ASP.NET be configured to run as an administrator when UAC is enabled?启用 UAC 后,ASP.NET 可以配置为以管理员身份运行吗?
【发布时间】:2011-01-26 04:59:24
【问题描述】:

我似乎找不到任何信息表明 ASP.NET 是否可以配置(通过 web.config 或 machine.config)以在具有 UAC 的计算机上以真实管理员身份运行已启用。

我的意思是,即使您将其设置为模拟管理员帐户,UAC 也会通过返回隐藏管理员角色的令牌集来禁用该帐户充当管理员的能力。对于 IsInRole 等任何检查,运行帐户实际上根本不是管理员。

所以...假设我想忽略所有好的建议,并继续在 Vista 上以管理员权限运行 Web 应用程序。有没有可能?

欢迎替代品。 (需要管理员权限的核心原因:停止或启动该机器上运行的服务。)

【问题讨论】:

    标签: asp.net uac privileges administrator


    【解决方案1】:

    Core Reason 的替代建议:

    使用消息队列或类似概念来传递有关服务的信息以在不同的安全上下文之间来回启动/停止,而不是尝试在 ASP.NET 下将这些东西硬连接在一起。

    例如,

    1. 在您的 ASP.NET 非管理员帐户下,将一些值写入文件或注册表(某种日志),其中包含有关停止或启动哪些服务的信息。

    2. 作为真正的管理员运行的控制器服务会轮询写入的数据位置,当它看到信息时,按照这些命令启动和停止相应的服务。

    您可以通过变通方法而不是安全黑客或完全禁用 UAC 来解决问题。

    监控更新:

    1. 与上面的想法相同,但有些相反 - 在系统上运行的此场景的主/控制器服务写入日志文件。它是描述其他服务的服务。
    2. 在网页上设置自动刷新。每次您的网页刷新时,它都会查看更改日志 = 有关已停止或启动的服务的信息(可以保留自己的暂存文件以进行更改检测)。刷新可能是 META Refresh 标记,或者是对服务器的 AJAX 回调(更微妙)。
    3. 网页像以前一样发出指令。

    问题是如果该主/控制器服务停止并且没有任何报告(日志/消息停止传递)。如果可以的话,为那个服务做一个特例,告诉 Windows 如果它停止就重新启动它,或者如果它不能启动那个服务就重新启动机器......

    .. 顺便说一句,您是否使用过 Windows 工具来自动监视服务并在出现故障时重新启动它们,而不是使用网页监视器,或者这对您的要求不可行?

    【讨论】:

    • 谢谢,这是个好主意,不幸的是,该网页可以监控服务是否已停止,并在它们丢失时重新启动或安装它们。我意识到从网页上做这种工作是非正统的,但我想在我驳回它之前对它的可能性做出裁决——显然更愿意以某种正确配置的方式来做:)
    猜你喜欢
    • 2013-09-06
    • 2011-01-15
    • 1970-01-01
    • 2014-08-08
    • 2016-09-20
    • 2010-11-26
    • 2012-05-28
    • 2011-03-24
    • 2021-08-10
    相关资源
    最近更新 更多