.net Dll绑定域名

lkd3063607 2010-09-30 10:19:24
现在很多公司专门做Asp.Net的b/s架构产品的,都会把自己的产品和域名绑定到一个DLL文件中进行销售。比如有一个门户网,我购买了,我必须提供我的域名给他,然后他把这个域名和他开发的门户网程序绑定,这个程序窝放服务器运行后我就只能用这个域名访问才能打开网站
比如这个系统:http://www.163k.com/goumai.html就是这样做的
这样别人即便用非法手段得到了该程序也无法使用或者架设的网站无法运行
通过这样的方法很好的保护了自己的产品,不至于自己辛苦开发的产品不小心被别人外传后,搞的网上到处都可以免费使用
对这方面我不熟悉,网上也没有相关的例子
,请各位大哥详细说下,60分送上
...全文
240 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yusheng622 2012-04-08
  • 打赏
  • 举报
回复
好贴!
boois 2011-10-06
  • 打赏
  • 举报
回复
当然网卡和硬盘序列号只有你们为客户实施安装的话才能做到,一般绑域名之后再把DLL混淆+加密就可以了,DLL的反编译只能猜测你的部分代码意图,对于前端也封装到DLL并混淆加密的情况,一般还是不好做反编译的
当然DLL里面使用的JS等嵌入资源文件,最好也进行混淆
boois 2011-10-06
  • 打赏
  • 举报
回复
严格的话可以绑定域名+硬盘序列号+网卡


public bool test()
{
bool Pass = true;
//域名测试
if (HttpContext.Current.Request.Url.Host != "localhost") { Pass = false; }
if (HttpContext.Current.Request.Url.Host != "localhost") { Pass = false; }
//硬盘序列号测试
if (getDiskID() != "Ricoh SD/MMC Disk Device") { Pass = false; }
//网卡测试
if (GetMacAddress() != "00:22:FB:52:56:94") { Pass = false; }
return Pass;
}

private string getDiskID()
{
//获取硬盘ID
String HDid = "";
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;
}
return HDid;
}
private static string GetMacAddress()
{
//获取网卡硬件地址
string _MacAddress = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mc.GetInstances();
foreach (ManagementObject mo in moc2)
{
if ((bool)mo["IPEnabled"] == true)
_MacAddress = mo["MacAddress"].ToString();
mo.Dispose();
}
return _MacAddress;
}
boois 2011-10-06
  • 打赏
  • 举报
回复
可以等于把前端的aspx ascx 全部都编译到DLL里去,然后在主要的函数方法和类的入口验证当前域名是否符合要求,如果不符合就直接return

通常我们的做法就是主要系统都做成组件化,每个组件的前端都是代码化的,编译后就是一个DLL,然后每个组件的DLL都做上刚才说的验证就可以了
勤奋的阿拉丁 2010-09-30
  • 打赏
  • 举报
回复
DLL文件,其实在ASP.NET产品中,也就是CS文件编译后得到的东东,你只要把你的连接写死进CS文件,然后编译发布就可以了。不知道楼主是不是要问这个?如下简单例子。

-------------aspx-------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:HyperLink ID="MyLink" runat="server">Go as i asked</asp:HyperLink>
</div>
</form>
</body>
</html>


-------------cs-------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.MyLink.NavigateUrl = @"http://www.163k.com/goumai.html";
}
}
parverxiao 2010-09-30
  • 打赏
  • 举报
回复
这个我也不熟悉,帮顶。。。

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧