如何在 ASP.NET 中使用 JavaScript 保护页面






1.92/5 (5投票s)
如何在 ASP.NET 中使用 JavaScript 保护页面免受文本复制。
引言:很多时候,我们出于安全原因不希望用户复制我们的页面。在我的公司,我需要为纺织工程师设计一个网站,让他们可以提交文章,并且他们不希望未注册用户从页面上复制他们的文章。
以下是我实现此功能的方法。为此,我在我的 ASP.NET 项目中使用 JavaScript。
打开您的项目,转到您想要的 .aspx 页面,并将以下 JavaScript 代码复制到 Head 部分。这里我创建了两种类型的函数,以防止鼠标和键盘复制。
<script type="text/javascript">
function noCopyMouse(e) {
var isRight = (e.button) ? (e.button == 2) : (e.which == 3);
if(isRight) {
alert('This page is copy protected');
return false;
}
return true;
}
function noCopyKey(e) {
var forbiddenKeys = new Array('c','x','v');
var keyCode = (e.keyCode) ? e.keyCode : e.which;
var isCtrl;
if(window.event)
isCtrl = e.ctrlKey
else
isCtrl = (window.Event) ? ((e.modifiers &
Event.CTRL_MASK) == Event.CTRL_MASK) : false;
if(isCtrl) {
for(i = 0; i < forbiddenKeys.length; i++) {
if(forbiddenKeys[i] == String.fromCharCode(keyCode).toLowerCase()) {
alert('This page is copy protected');
return false;
}
}
}
return true;
}
</script>
现在您需要选择页面中您不想复制的部分。在这里,我不希望复制整个页面,所以我使用一个面板,并在面板中创建所有表格。
<asp:Panel ID="Panel1" runat="server">
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<asp:Label ID="Label5" runat="server"
Text="Try to copy me."></asp:Label>
</td>
</tr>
</table>
</asp:Panel>
现在转到您的 .cs 页面,并在 Load
事件中编写以下代码。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Panel1.Attributes.Add("onmousedown", "return noCopyMouse(event);");
Panel1.Attributes.Add("onkeydown", "return noCopyKey(event);");
}
}
运行您的项目,选择页面中的一些文本,并尝试复制它,将显示警告消息。