Dzwebs.Net

撰写电脑技术杂文十余年

如何动态设置让网站会员才能复制网站文章

Admin | 2009-2-22 11:36:35 | 被阅次数 | 6339

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  网站上的文章,每个人都能看;

  但是,我们如何才能做到,网站文章的复制功能,仅针对会员开放,对于不进行登陆的游客,限制其复制?

  首先,千万不能怪俺出阴招;再次,也不能说俺自私;最后,切勿责怪某家教唆别人愚弄大众;

  因为,很多网站都具备会员功能,而部分宝贵的资源,只能对会员进行开放;此外,本着以相互学习为目的,俺就出此一招,让大家对其运行机制有所了解。

  下面,我们就来谈谈,如何实现这样的功能;

  一、理论知识

  实现的方法很简单,无非就是通过程序自动判断,游客是否已登陆,如果已登陆,就取消限制复制的代码;否则,就在网页中加入限制复制的代码,即可实现功能;

  二、实现方法

  本文以asp.net网站程序为领子;如果您的网站是其它脚本程序,请效仿。

  ①修改Body

  我们都知道,在ASPX页面中,有一个Body,即<body>,是在客户端运行的;

  下面,我们先将该Body修改一下,让其在服务器端运行,代码改为类似如下:

  <body id="MyCopy" runat=server >;//即,给其添加一个ID,再让其runat=server在服务器端运行;

  ②添加代码

  protected void Page_Load(object sender, EventArgs e)
  {
   if (此处编写判断会员是否登陆的代码)//仅开放会员的复制功能
   {
             //MyCopy.Attributes.Add("oncopy", "alert('复制功能仅对本站会员开放,您未登陆!');return false");
             MyCopy.Attributes.Add("onselectstart", "return false");
             MyCopy.Attributes.Add("oncontextmenu", "return false");
             CopyMSG.Text = "您尚未登陆,本站复制功能仅对会员开放";
   }
   else
         {
             CopyMSG.Text = "您已登陆" );
         }
  }

  在页面的Page_Load事件中,添加如上的代码;

  MyCopy为Body的ID;

  通过MyCopy.Attributes.Add,添加限制复制功能;即:

  MyCopy.Attributes.Add("onselectstart", "return false");
  MyCopy.Attributes.Add("oncontextmenu", "return false");

  CopyMSG为页面的控件,是一个Label对象,请自行添加,用来显示提示信息给用户的;

  就这么简单,就实现了如题的功能;

  当游客未登陆时,在Body标签中,就会自动加上onselectstart="return false" oncontextmenu="return false",如下代码:

  <body id="MyCopy"  onselectstart="return false" oncontextmenu="return false">,从而实现禁止复制的功能;

  当游客登陆时,就不会加上onselectstart="return false" oncontextmenu="return false",从而解除禁止复制的功能。


该杂文来自: 网站开发杂文

上一篇:程序员应具备的素质

下一篇:获取某网址上的所有电子邮件地址的ASP.NET代码

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计