【问题标题】:Access to the path 'C:\Windows\System32\ is denied访问路径 'C:\Windows\System32\ 被拒绝
【发布时间】:2012-04-20 14:03:04
【问题描述】:

我为某人写了一个网站,想在两个月后禁用它。
(因为他应该在两个月后付款,否则我应该炸毁它)
所以,我从我的网站调用了 DateTime WebService 来获取 DateTime.Now!
我应该将网站启动时间保留在他的服务器中的某个位置,并且我想在 C:\Windows\System32 中编写一个文本文件。
但是当我尝试在此路径中编写文本文件时,出现以下错误:

Access to the path 'C:\Windows\System32\ is denied.

此时我可以远程访问他的服务器并且可以更改权限。
但如果他更改服务器,他会看到该错误,并且可以轻松找到该文件并对其进行编辑。
请您教我一种修复该错误的方法或另一种节省网站启动时间的方法!(指在哪里?)
数据库不是一个好主意,因为他可以访问他的数据库。
我可以将该文件写入 c 驱动器并更改其属性(隐藏和系统),但他可以轻松找到该文件。

希望能得到一些帮助

【问题讨论】:

  • 您需要多信任您的客户。
  • 我不知道我所在地区发生了什么。但有些人不尊重 WebDevelopers。
  • 如果用户对服务器具有管理访问权限,则您无法阻止他。你必须相信他是诚实的,不会绕过你的时间限制。
  • 将应用程序特定的文件存储在 Windows 的 System32 目录中从来都不是一个好主意。如果您绝对必须这样做,请考虑使用注册表或沙箱中的某个位置。
  • 一开始就避免写在那里不是更容易吗?您不需要记录网站的开始时间,因为您是把它放在那里的人:您已经知道它的确切时间。您的网站可以检查服务器日期,如果是 2012 年 2 月 17 日或之后,则拒绝运行。你不是在管理服务器,所以如果没有必要,不要乱搞服务器。

标签: c# asp.net file windows-server-2008-r2


【解决方案1】:

您希望开始一场“猫捉老鼠”的游戏,无论您尝试什么,总会有人找到解决办法。此外,您为限制网站可用性所做的任何尝试都可能导致许可代码等方面的错误。

我强烈建议您考虑另一种方法。不要试图通过技术手段进行任何限制。网站需要支持。提供持续的支持合同。如果您的客户停止付款,他可能仍然拥有该网站,但没有人支持它。

否则,另一个需要考虑的选项是您的托管模型是错误的。为您的客户托管网站,然后托管包含费用。它还将消除您的客户试图规避您添加的任何许可控制的任何技术问题 - 假设您的客户无权访问您的虚拟主机。

【讨论】:

    【解决方案2】:

    假设您的客户无权访问源,为什么不简单地添加 Google Analytics,您将看到它是如何/何时使用的......

    【讨论】:

      【解决方案3】:

      我有一个想法,您可以创建一个 Web 服务,从您的代码中调用该 Web 服务,并且该 Web 服务正在由您在任何其他在线服务器上运行。

      此 Web 服务的目的是检查客户/客户的名称,然后可以有一个定制的 XML 文件或文本文件,用于搜索该特定客户是否有权继续使用该应用程序或不。

      如果您想要一些身份验证等,您也可以在该 Web 服务中使用身份验证。
      出于这个原因,我认为您也可以使用 Microsoft WCF 服务。

      此 Web 服务也可被其他客户和其他项目重用。

      【讨论】:

        猜你喜欢
        • 2012-08-31
        • 2019-05-26
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多