很多中方式.最简单的方式 是加上一个 StrongNameidentityPermission

解决方案 »

  1.   

    装成DLL即可,不用那么麻烦,在建立SETUP工程的时候不输出相应的源文件
      

  2.   

    用服务器MAC地址生成序列号进行注册
      

  3.   

    生成release。net代码有混淆器,用混淆器混淆dll代码,这样反汇编就很难了
    再就是在,web。config里配置出错页,别把代码反馈回去。
      

  4.   

    还有就是,采用code behind方式,别把后台代码写在aspx里
      

  5.   

    Montaque(Rain + Man=Rainman)方便
      

  6.   

    用服务器MAC地址生成序列号进行注册
      

  7.   

    StrongNameidentityPermission:我先学习一下,多谢。混淆器:多谢,我先查查这方面资料。MAC地址的方式:现在有很多工具能够轻易修改MAC地址,这个方法恐怕不太安全。Code behind 代码封装等,不能实现版权保护,因为用户可以随便复制和使用你的系统。其实,尽可能(只能是尽可能)保护代码不被反编译是一个基础,
    此外,希望用户不能无限制复制系统,这是最终的目的。大家有没有其他的办法?
      

  8.   

    Montaque(Rain + Man=Rainman) :再麻烦一下,StrongNameIdentityPermission怎么使用?
      

  9.   

    最简单的方式是开一个服务器,在服务器写加密算法对授权用户进行UID,PWD的计算
    只有注册并付费的用户才能使用系统
    这个方法很好,如果加密算法不可逆的话(即获得加密后的代码也无法得到原代码),将十分安全可靠或者参照网上银行,做一个安全网站,使用办法证书的方式进行加密
      

  10.   

    限制未授权的代码
    通过使用 .NET Framework 代码访问安全性(特别是代码标识需求),可以限制能够访问数据访问类和方法的程序集。例如,如果您只希望由公司或特定开发组织编写的代码能够使用您的数据访问组件,请使用 StrongNameIdentityPermission ,并要求调用程序集具有一个带有指定公钥的强名称,如下面的代码片断所示:using System.Security.Permissions;
    . . .
    [StrongNameIdentityPermission(SecurityAction.LinkDemand, 
    PublicKey="002...4c6")]
    public void GetCustomerInfo(int CustId)
    {
    }要提取给定程序集的公钥的文本表示形式,请使用下面的命令:sn -Tp assembly.dll注意 在 –Tp 开关中使用大写的“T”。因为 Web 应用程序的程序集是动态编译的,所以对于这些程序集不能使用强名称。这使得很难将数据访问程序集的使用限制在特定的 Web 应用程序上。最佳方法是开发一个自定义权限,并要求该权限来自数据访问组件。完全信任 Web 应用程序(或任何完全受信任代码)可以调用您的组件。但是,部分信任代码只有在被授予了自定义权限之后,才能调用您的数据访问组件。
      

  11.   

    对啊,直接做成dll,过去asp代码用字符串加密也可以啊1
      

  12.   

    服务器MAC地址生成序列号进行注册
    或者把核心代码封装成DLL