保护我的ASP .NET代码以进行演示?

时间:2011-10-19 20:56:23

标签: c# asp.net .net

我有一个Web应用程序,为了向我的客户端进行演示,他们要求我将它安装在本地服务器上,以便他们可以测试它,这是我的问题!?

有没有办法让我可以为该服务器唯一发布,我确实提出了一些限制,但我的应用程序中的许多功能都是开放的,因此他们可以从服务器制作磁盘映像并在其他任何地方使用它,

是否有任何方法可供使用,以便我的Web应用程序检查此服务器是否是同一服务器(通过硬件ID或任何我不知道的任何内容)然后开始工作!

我看到很多代码,但它们是用于生成独特隐藏的胜利形式,但我如何连接到asp .net

修改

你也可以看看这个吗,

我是using system.management class

这是可靠的我的意思是他们独一无二吗?

  private string GetUniqueID()
    {
        string cpuInfo = string.Empty;
        ManagementClass mc = new ManagementClass("win32_processor");
        ManagementObjectCollection moc = mc.GetInstances();

        foreach (ManagementObject mo in moc)
        {
            if (cpuInfo == "")
            {
                //Get only the first CPU's ID
                cpuInfo = mo.Properties["processorID"].Value.ToString();
                break;
            }
        }
        ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + "C" + @":""");
        dsk.Get();
        string volumeSerial = dsk["VolumeSerialNumber"].ToString();

        string HardWareUniqueID = volumeSerial + cpuInfo;

        return HardWareUniqueID;
    }

欣赏你的答案, 提前致谢

4 个答案:

答案 0 :(得分:3)

如果你想避免让它“回家”,另一种方法是生成某种证书并将其放在机器上。使用只有您知道的私钥才能加密计算机名称和/或IP。然后让您的应用程序使用您的公钥对其进行解密,以验证是否允许它在此服务器上运行。没有人知道您的私钥将无法创建有效的证书。

答案 1 :(得分:1)

你有几个选择......

  1. 将您的网站锁定到您安装它的单个IP地址。为了让您的生活更轻松,请在通用页面基类中检查该IP。 (注意,您也可以编写HTTP处理程序,但基类方法更容易。)

  2. 在应用中放置一个“电话回家”电话,每次启动时都会检查您的服务器。这样,您可以检查是否已移动它或是否正在运行多个实例。

  3. 使用.NET的内置许可功能(同一个第三方开发人员用于控件等)

  4. 最简单的......只需加入定时炸弹,让他们测试几周,然后自动阻止访问。要聪明一点......坚持最后检查的时间,这样你就可以判断他们是否为了获得更多的使用而回滚他们的时钟。

  5. 只需确保分发Web应用程序,而不是Web项目,这样您就可以将代码分发为已编译的bumary,而不必分发代码隐藏文件。这会让人眼前一亮,但确实会让部署变得更加痛苦,因为你总是需要在每次更改时重新编译(而不是按需编译)。

答案 2 :(得分:0)

我会投入定时炸弹。实施它是微不足道的。此外,您的客户不会认为您不信任他们。应用程序中的固定评估期非常常见。

答案 3 :(得分:0)

为他们提供没有任何用户访问权限的VMware映像,只允许他们在Web浏览器中通过HTTP从外部打开网站。