Sie sind auf Seite 1von 3

Disable Print Screen Key and All Keyboard Keys in ASP.

NET Page - CodeProject

Page 1 of 3

Web Development ASP.NET General

Disable Print Screen Key and All Keyboard Keys in ASP.NET Page
By Wael Sayed | 18 Jun 2009
C#1.0 C#2.0 C#3.0 .NET3.5 C# ASP.NET Javascript CSS .NET Dev

Licence First Posted Views Downloads Bookmarked

CPOL 18 Jun 2009 24,332 527 14 times

,+

Disable print screen key and all keyboard keys in ASP.NET page
2.78 (6 votes)

Download source code - 4.05 KB

Introduction
In this article, I will explain how to disable print screen or keyboard in secure applications as Exam online in E-learning system or in any application you want to protect. Some people can hack your data by using print screen, take HTML source code or even print the questions. We have 4 challenges to create pages for exams or secure application: 1. 2. 3. 4. Disable print screen and clear any Clipboard data Avoid using keyboard or mouse Hide data in HTML source Avoid using print page

The first step is to avoid using print screen key To solve this problem you have to access the users clipboard by JavaScript function:
<script language="javascript" type="text/javascript"> function AccessClipboardData() { try { window.clipboardData.setData('text', "No print data"); } catch (err) { txt = "There was an error on this page.\n\n"; txt += "Error description: " + err.description + "\n\n"; txt += "Click OK to continue.\n\n"; alert(txt); } } </script>

This function clears any clipboard object and sets a new clipboard in a message as the previous example. If the user presses print screen key, he or she cannot capture any image because the clipboard contains a text message that says "No print data". So don't forget to close this page if you would like to copy a text or a file in your operating system.

http://www.codeproject.com/KB/aspnet/Protect_your_data.aspx?display=Print

27/10/2011

Disable Print Screen Key and All Keyboard Keys in ASP.NET Page - CodeProject

Page 2 of 3

We call this function(AccessClipboardData) every 300 milliseconds by using setInterval to clear any object in clipboard.
setInterval("AccessClipboardData()", 300);

But this solution not complete because Internet Explorer will ask the user if he/she will allow this page to access the clipboard or not. So we have to write code to handle this option if the user will not allow the page to access the clipboard. Add this code after the setInterval function:
setInterval("AccessClipboardData()", 300); var ClipBoardText = ""; if (window.clipboardData) { ClipBoardText = window.clipboardData.getData('text'); if (ClipBoardText != "No print data") { alert('Sorry you have to allow the page to access clipboard'); // hide the div which contains your data document.all("divmaster").style.display = "none" }

In the previous code, we declare a clipboardtext variable to get clipboard text and check if the user allows the page to access the clipboard or not. The second step is to avoid using keyboard To solve this problem, you have to capture all events and cancel them by pop messages in case of copying data by CTRL+C or select all data by CTRL+A.
document.onkeydown = function(ev) { var a; ev = window.event; if (typeof ev == "undefined") { alert("PLEASE DON'T USE KEYBORD"); } a = ev.keyCode; alert("PLEASE DON'T USE KEYBORD"); return false; } document.onkeyup = function(ev) { var charCode; if (typeof ev == "undefined") { ev = window.event; alert("PLEASE DON'T USE KEYBORD"); } else { alert("PLEASE DON'T USE KEYBORD"); } return false; }

The third step is to avoid using print page To solve this problem, you have to use CSS (Cascade Style Sheet) to hide your data in printing:
<style type="text/css" media="print"> .noprint { display: none; } </style>

http://www.codeproject.com/KB/aspnet/Protect_your_data.aspx?display=Print

27/10/2011

Disable Print Screen Key and All Keyboard Keys in ASP.NET Page - CodeProject

Page 3 of 3

Finally we want to avoid data from appearing in the HTML source, so we will use update panel and if your data gets in page_load event delay shows data by timer control.

History
18th June, 2009: Initial post

License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author


Wael Sayed I have 8+ years experience in Web development ASP.NET, XML,HTML,CSS,Ajax and JavaScript.

CEO ProNileSoft Egypt Member

Comments and Discussions


14 messages have been posted for this article Visit http://www.codeproject.com/KB/aspnet/Protect_your_data.aspx to post and view comments on this article, or click here to get a print view with messages.
Permalink | Advertise | Privacy | Mobile | Web01 | 2.5.111017.1 Article Copyright 2009 by Wael Sayed Everything else Copyright CodeProject, 1999-2011 Terms of Use

http://www.codeproject.com/KB/aspnet/Protect_your_data.aspx?display=Print

27/10/2011

Das könnte Ihnen auch gefallen