繁体   English   中英

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

[英]Secure My ASP .NET Code For Presentation?

我有一个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;
    }

感谢您的回答,提前致谢

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

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

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

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

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

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

只需确保分发Web应用程序,而不是Web项目,这样您就可以将代码分发为已编译的bumary,而不必分发代码隐藏文件。 这将继续窥探,但确实使部署更加痛苦,因为您总是需要重新编译每次更改(而不是按需编译)。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM