给一个客户做了一个网站,网站管理后台的标志是用的我公司的标志(为了有其他客户想看实例的时候,用来证明是我们公司产品的东东),但现在这个客户他总是把后台标志改成他们自己网站的标志,大家说我有什么技术手段能阻止他这么做呢?一开始我想的是把页面里的html都写到cs文件里,通过Response.Write一起输出,这样他就没有办法改标志图像路径了(客户还没有到反编译的地步),可是一想不对,客户只要将页面顶端的<%@ Page language="c#" Codebehind="top.aspx.cs" AutoEventWireup="false" Inherits="aaa.top.aspx.cs" %>删除,然后自己粘贴html代码上去不就可以了!(这个页面就是框架页的首页,没有其他功能)大家有什么办法吗?

解决方案 »

  1.   


    可以这么试,在cs 文件里写js脚本加载,cs文件编译.
      

  2.   

    不行呀,现在问题是他能随意改top.aspx文件呀,他改个图像名不就OK了,比如:
    原来页面是这样
    <%@ Page language="c#" Codebehind="top.aspx.cs" AutoEventWireup="false" Inherits="aaa.top.aspx.cs" %>
    <html>
    ..........
    <img src="我们的标志" />
    ..........
    </html>现在他们把第一行<%@ %>代码段删除,改成
    <html>
    ..........
    <img src="他们的标志地址" />
    ..........
    </html>由于这个页面没有其他功能了,所以他们改了是不会出错的,而他们的标志图像所在位置那就想在什么地方在什么地方了
      

  3.   

    这样可以解决:这个img  在后台  利用 controls。add  动态添加控件 图片路径 (这样避免 用户 修改src图片地址)
    假如是 img/1.jpg
    在这个之前  取出 数据库的 标志 的2进制 码  写成图片替换掉 img/1.jpg 这样可以避免 用户更换掉图片还有 你说的那中情况  用户 直接把你的主框架 给换成它的静态HTML页面
    这个 可以 在主框架 加载 的时候 给个session 
    在frmame 页面 加载的时候  验证下这个session
    当然要保密  要是用户知道你的session 名 和值 了 用户照样可以自己写个主框架 也给个相同的session
      

  4.   

    先把原图像的bytes保存成dat文件或存到什么地方,写个函数做检测,对比原图像的bytes是否和当前图像bytes一样。然后把这个函数放到top.aspx.cs的Page_Load事件里,一旦无法读取dat文件,或读取的byte与当前图像的byte不一样则证明被修改加以处理。img 做成server control, 在page_Load时动态加载图像。<img id="yourImage" runat ="server"/> 
    或者<asp:Image id="yourImage" runat="server"/>这样他就不能删除<%@ %>的内容了。
      

  5.   

    客户有源码还是不好弄的
    这个还是在之前谈好,或者警告他们,说要这样改,以后出问题不负责任,不承担bug修改之类,恐吓之。