C# 为演示文稿保护我的ASP.NET代码?
我有一个web应用程序,用于向我的客户演示,他们要求我在本地服务器上安装它,以便他们可以测试它,这是我的问题 有没有什么方法可以让我为那个服务器发布唯一的内容,我确实做了一些限制,但我的应用程序中的许多功能都是开放的,所以他们可以从服务器生成磁盘映像并在其他任何地方使用它 是否有任何方法可供使用,以便我的web应用程序通过硬件id检查此服务器是否为同一服务器或任何我不知道的内容,然后开始工作 我看到了很多代码,但它们都是用于生成唯一hid的win表单,但是如何将它们与asp.net连接起来呢 编辑 你能再看看这个吗 我正在使用系统管理类 这可靠吗?我的意思是,它们是独一无二的吗C# 为演示文稿保护我的ASP.NET代码?,c#,asp.net,.net,C#,Asp.net,.net,我有一个web应用程序,用于向我的客户演示,他们要求我在本地服务器上安装它,以便他们可以测试它,这是我的问题 有没有什么方法可以让我为那个服务器发布唯一的内容,我确实做了一些限制,但我的应用程序中的许多功能都是开放的,所以他们可以从服务器生成磁盘映像并在其他任何地方使用它 是否有任何方法可供使用,以便我的web应用程序通过硬件id检查此服务器是否为同一服务器或任何我不知道的内容,然后开始工作 我看到了很多代码,但它们都是用于生成唯一hid的win表单,但是如何将它们与asp.net连接起来呢 编
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地址。为了让您的生活更轻松,请在公共页面基类中检查该IP。注意,您也可以编写HTTP处理程序,但基类方法更容易 在应用程序中打一个“呼叫总部”电话,每次启动时都会与服务器进行检查。这样,您可以检查他们是否移动了它,或者是否有多个实例正在运行 使用.NET的内置许可功能,就像第三方开发人员用于控件等的功能一样 最简单的。。。只要放一个定时炸弹,让他们测试几个星期,然后自动阻止访问。但是要聪明点。。。坚持上次检查的时间,这样您就可以知道他们是否已将时钟回滚以获得更多的使用率
只需确保分发web应用程序,而不是web项目,这样您就可以将代码作为已编译的bumary分发,而不必将代码隐藏在文件后面。这会让窥探者保持警惕,但确实会让部署变得更加痛苦,因为与按需编译相比,每次更改都必须重新编译。您有一些选择 将网站锁定到安装它的单一IP地址。为了让您的生活更轻松,请在公共页面基类中检查该IP。注意,您也可以编写HTTP处理程序,但基类方法更容易 在应用程序中打一个“呼叫总部”电话,每次启动时都会与服务器进行检查。这样,您可以检查他们是否移动了它,或者是否有多个实例正在运行 使用.NET的内置许可功能,就像第三方开发人员用于控件等的功能一样 最简单的。。。只要放一个定时炸弹,让他们测试几个星期,然后自动阻止访问。但是要聪明点。。。坚持上次检查的时间,这样您就可以知道他们是否已将时钟回滚以获得更多的使用率
只需确保分发web应用程序,而不是web项目,这样您就可以将代码作为已编译的bumary分发,而不必将代码隐藏在文件后面。这会让窥探者望而却步,但确实会让部署更加痛苦,因为每次更改都要重新编译,而不是按需编译。如果您不想让它打电话回家,另一种方法是生成某种证书并将其放在计算机上。使用只有您知道的私钥加密机器名和/或IP。然后让你的应用程序使用你的公钥对其进行解密,以验证它是否允许在此服务器上运行。不知道您的私钥的人都无法创建有效的证书。如果您不想让它打电话回家,另一种方法是生成某种证书并将其放在计算机上。使用只有您知道的私钥加密机器名和/或IP。然后让你的应用程序使用你的公钥对其进行解密,以验证它是否允许在此服务器上运行。不知道您的私钥的人将无法创建有效的证书。我会放入定时炸弹。实现起来很简单。而且,你的客户不会认为你不信任他们。应用程序中的固定评估期非常常见 我会放一颗定时炸弹。实现起来很简单。而且,你的客户不会认为你不信任他们。应用程序中的固定评估期非常常见 为他们提供VMware映像,无需任何用户访问,只需允许他们在web浏览器中通过HTTP从外部打开网站即可 为他们提供VMware映像,无需任何用户访问,只需允许他们在web浏览器中通过HTTP从外部打开网站即可如果你不信任你的客户,你应该考虑放弃他们。你的问题是,你不相信你的客户,你认为他们会偷它和/或不付钱给你吗?这是我要解决的问题,而不是代码。你签过合同吗?这就是合同的目的,没有合同就永远不能工作。有了我们的合同,我不想让他们出丑
离开我,因为这个应用程序可以在本地使用我不能随时去那里结账他们是否在使用它,并建议我把它复制到usb驱动器上,然后把它丢失了?!那么,如果它是一个web应用程序,为什么他们需要它安装在本地机器上进行“测试”?为什么他们不能直接使用互联网并让它在你的机器上运行?如果离线,需要本地访问,那么我会简单地建议在我的回答中提到的定时炸弹方法。如果你不信任你的客户,你应该考虑放弃它们。你的问题是,你不相信你的客户以为你会偷走它和/或不付钱给你吗?这是我要解决的问题,而不是代码。你签过合同吗?这就是合同的目的,没有合同就永远不会工作。有了我们的无合同,我不想让他们愚弄我,因为这个应用程序可以在本地使用,我不能随时去那里检查他们是否在使用它,并建议我将它复制到usb驱动器上,然后丢失它?!那么,如果它是一个web应用程序,为什么他们需要它安装在本地机器上进行“测试”?为什么他们不能直接使用互联网并让它在你的机器上运行?如果需要离线、本地访问,那么我会简单地建议我在回答中提到的定时炸弹方法。只要我的应用程序用于本地网络内部,即使没有任何互联网连接,我也不能依赖ip或呼叫总部,但私钥很好,我会研究它,你能在第一篇文章里查一下我的代码吗!?只要我的应用程序是用于本地网络内部,即使没有任何互联网连接,我也不能依靠ip或电话回家,但私钥是好的,我会看看它,你能在第一篇文章中检查我的代码吗!?