[英]What is the best way to refactor presentation code out of my domain objects in an ASP.NET MVC solution?
[英]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。 然后让您的应用程序使用您的公钥对其进行解密,以验证是否允许它在此服务器上运行。 没有人知道您的私钥将无法创建有效的证书。
你有几个选择......
将您的网站锁定到您安装它的单个IP地址。 为了让您的生活更轻松,请在通用页面基类中检查该IP。 (注意,您也可以编写HTTP处理程序,但基类方法更容易。)
在应用程序中放置一个“电话回家”电话,每次启动时都会检查您的服务器。 这样,您可以检查是否已移动它或是否正在运行多个实例。
使用.NET的内置许可功能(同一个第三方开发人员用于控件等)
最简单的...只需加入定时炸弹,让它们测试几周,然后自动阻止访问。 要聪明一点......坚持最后检查的时间,这样你就可以判断他们是否已经回滚了他们的时钟,试图获得更多的使用。
只需确保分发Web应用程序,而不是Web项目,这样您就可以将代码分发为已编译的bumary,而不必分发代码隐藏文件。 这将继续窥探,但确实使部署更加痛苦,因为您总是需要重新编译每次更改(而不是按需编译)。
我会投入定时炸弹。 实施它是微不足道的。 此外,您的客户不会认为您不信任他们。 应用程序中的固定评估期非常常见。
在没有任何用户访问权限的情况下为他们提供VMware映像,只允许他们在Web浏览器中通过HTTP从外部打开网站。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.