You are on page 1of 79

1.

INTRODUCTION

Usable security has unique usability challenges because the need for security
often means that standard human-computer-interaction approaches cannot be
directly applied. An important usability goal for authentication systems is to support
users in selecting better passwords. Users often create memorable passwords that
are easy for attackers to guess, but strong system-assigned passwords are difficult
for users to remember. So researchers of modern days have gone for alternative
methods wherein graphical pictures are used as passwords. Graphical passwords
essentially use images or representation of images as passwords. Human brain is
good in remembering picture than textual character. There are various graphical
password schemes or graphical password software in the market. However, very
little research has been done to analyze graphical passwords that are still immature.
There for, this project work merges persuasive cued click points and password
guessing resistant protocol. The major goal of this work is to reduce the guessing
attacks as well as encouraging users to select more random, and difficult passwords
to guess. Well known security threats like brute force attacks and dictionary attacks
can be successfully abolished using this method.

1
2.SYSTEM SPECIFICATION

2.1 HARDWARE REQUIREMENTS:

• System : Pentium IV 2.4 GHz.


• Hard Disk : 40 GB.
• Floppy Drive : 1.44 Mb.
• Monitor : 14’ Colour Monitor.
• Mouse : Optical Mouse.
• RAM : 512 Mb.
• Keyboard : 101 Keyboard.

2.2 SOFTWARE REQUIREMENTS:

• Operating system : Windows 7.


• Coding Language : ASP.Net with C#
• Data Base : SQL Server 2008.

2
3. SYSTEM ANALYSIS
3.1 Existing System:
Existing approaches to Users often create memorable passwords that are easy
for attackers to guess, but strong system-assigned passwords are difficult for users to
remember. Despite the vulnerabilities, it’s the user natural tendency of the users that
they will always prefer to go for short passwords for ease of remembrance and also
lack of awareness about how attackers tend to attacks. Unfortunately, these passwords
are broken mercilessly by intruders by several simple means such as masquerading,
Eaves dropping and other rude means say dictionary attacks, shoulder surfing attacks,
social engineering attacks.

Disadvantage:

1. The strong system-assigned passwords are difficult for users to remember.

3.2 Proposed System:

We propose is to reduce the guessing attacks as well as encouraging users to


select more random, and difficult passwords to guess. The proposed system work
merges persuasive cued click points and password guessing resistant protocol.

Advantage:

1. Human brain is good in remembering picture than textual character.

3
3.3 SYSTEM STUDY

Feasibility Study

The feasibility of the project is analyzed in this phase and business


proposal is put forth with a very general plan for the project and some cost
estimates. During system analysis the feasibility study of the proposed system is
to be carried out. This is to ensure that the proposed system is not a burden to the
company. For feasibility analysis, some understanding of the major requirements
for the system is essential.

Three key considerations involved in the feasibility analysis are

• ECONOMICAL FEASIBILITY
• TECHNICAL FEASIBILITY
• SOCIAL FEASIBILITY
Economical Feasibility

This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was achieved
because most of the technologies used are freely available. Only the customized
products had to be purchased.

Technical Feasibility

This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.

4
SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficientlyThe
level of acceptance by the users solely depends on the methods that are employed to
educate the user about the system and to make him familiar with it. His level of
confidence must be raised so that he is also able to make some constructive criticism,
which is welcomed, as he is the final user of the system.

5
4. SOFTWARE ENVIRONMENT

4.1 Features Of.Net


Microsoft .NET is a set of Microsoft software technologies for rapidly
building and integrating XML Web services, Microsoft Windows-based applications,
and Web solutions. The .NET Framework is a language-neutral platform for writing
programs that can easily and securely interoperate. There’s no language barrier with
.NET: there are numerous languages available to the developer including Managed
C++, C#, Visual Basic and Java Script. The .NET framework provides the foundation
for components to interact seamlessly, whether locally or remotely on different
platforms. It standardizes common data types and communications protocols so that
components created in different languages can easily interoperate.

“.NET” is also the collective name given to various software


components built upon the .NET platform. These will be both products (Visual
Studio.NET and Windows.NET Server, for instance) and services (like Passport,
.NET My Services, and so on).

The .Net Framework

The .NET Framework has two main parts:

1. The Common Language Runtime (CLR).

2. A hierarchical set of class libraries.

The CLR is described as the “execution engine” of .NET. It provides the environment
within which programs run. The most important features are

♦ Conversion from a low-level assembler-style language, called


Intermediate Language (IL), into code native to the platform being
executed on.
♦ Memory management, notably including garbage collection.
♦ Checking and enforcing security restrictions on the running code.

6
♦ Loading and executing programs, with version control and other such
features.
• The following features of the .NET framework are also worth
description:
Managed Code

The code that targets .NET, and which contains certain extra Information -
metadata” - to describe itself. Whilst both managed and unmanaged code can run in
the runtime, only managed code contains the information that allows the CLR to
guarantee, for instance, safe execution and interoperability.

Managed Data

With Managed Code comes Managed Data. CLR provides memory


allocation and Deal location facilities, and garbage collection. Some .NET languages
use Managed Data by default, such as C#, Visual Basic.NET and JScript.NET,
whereas others, namely C++, do not. Targeting CLR can, depending on the language
you’re using, impose certain constraints on the features available. As with managed
and unmanaged code, one can have both managed and unmanaged data in .NET
applications - data that doesn’t get garbage collected but instead is looked after by
unmanaged code.

Common Type System

The CLR uses something called the Common Type System (CTS) to strictly
enforce type-safety. This ensures that all classes are compatible with each other, by
describing types in a common way. CTS define how types work within the runtime,
which enables types in one language to interoperate with types in another language,
including cross-language exception handling. As well as ensuring that types are only
used in appropriate ways, the runtime also ensures that code doesn’t attempt to access
memory that hasn’t been allocated to it.

7
Common Language Specification

The CLR provides built-in support for language interoperability. To ensure


that you can develop managed code that can be fully used by developers using any
programming language, a set of language features and rules for using them called the
Common Language Specification (CLS) has been defined. Components that follow
these rules and expose only CLS features are considered CLS-compliant.

The Class Library

.NET provides a single-rooted hierarchy of classes, containing over


7000 types. The root of the namespace is called System; this contains basic types like
Byte, Double, Boolean, and String, as well as Object. All objects derive from System.
Object. As well as objects, there are value types. Value types can be allocated on the
stack, which can provide useful flexibility. There are also efficient means of
converting value types to object types if and when necessary.

The set of classes is pretty comprehensive, providing collections, file,


screen, and network I/O, threading, and so on, as well as XML and database
connectivity.

The class library is subdivided into a number of sets (or namespaces),


each providing distinct areas of functionality, with dependencies between the
namespaces kept to a minimum.

Languages Supported By .Net

The multi-language capability of the .NET Framework and Visual


Studio .NET enables developers to use their existing programming skills to build all
types of applications and XML Web services. The .NET framework supports new
versions of Microsoft’s old favorites Visual Basic and C++ (as VB.NET and
Managed C++), but there are also a number of new additions to the family.

8
Visual Basic .NET has been updated to include many new and
improved language features that make it a powerful object-oriented programming
language. These features include inheritance, interfaces, and overloading, among
others. Visual Basic also now supports structured exception handling, custom
attributes and also supports multi-threading.

Visual Basic .NET is also CLS compliant, which means that any CLS-
compliant language can use the classes, objects, and components you create in Visual
Basic .NET.

Managed Extensions for C++ and attributed programming are just


some of the enhancements made to the C++ language. Managed Extensions simplify
the task of migrating existing C++ applications to the new .NET Framework.

C# is Microsoft’s new language. It’s a C-style language that is


essentially “C++ for Rapid Application Development”. Unlike other languages, its
specification is just the grammar of the language. It has no standard library of its own,
and instead has been designed with the intention of using the .NET libraries as its
own.

Microsoft Visual J# .NET provides the easiest transition for Java-


language developers into the world of XML Web Services and dramatically improves
the interoperability of Java-language programs with existing software written in a
variety of other programming languages.

Active State has created Visual Perl and Visual Python, which enable
.NET-aware applications to be built in either Perl or Python. Both products can be
integrated into the Visual Studio .NET environment. Visual Perl includes support for
Active State’s Perl Dev Kit.

Other languages for which .NET compilers are available include

• FORTRAN
• COBOL
• Eiffel

9
Fig1 .Net Framework

ASP.NET Windows Forms

XML WEB SERVICES

Base Class Libraries

Common Language Runtime

Operating System

C#.NET is also compliant with CLS (Common Language Specification) and


supports structured exception handling. CLS is set of rules and constructs that are
supported by the CLR (Common Language Runtime). CLR is the runtime
environment provided by the .NET Framework; it manages the execution of the
code and also makes the development process easier by providing services.

C#.NET is a CLS-compliant language. Any objects, classes, or components that


created in C#.NET can be used in any other CLS-compliant language. In addition,
we can use objects, classes, and components created in other CLS-compliant
languages in C#.NET .The use of CLS ensures complete interoperability among
applications, regardless of the languages used to create the application.

10
Constructors And Destructors:

Constructors are used to initialize objects, whereas destructors are used to


destroy them. In other words, destructors are used to release the resources
allocated to the object. In C#.NET the sub finalize procedure is available. The sub
finalize procedure is used to complete the tasks that must be performed when an
object is destroyed. The sub finalize procedure is called automatically when an
object is destroyed. In addition, the sub finalize procedure can be called only from
the class it belongs to or from derived classes.

Garbage Collection

Garbage Collection is another new feature in C#.NET. The .NET Framework


monitors allocated resources, such as objects and variables. In addition, the .NET
Framework automatically releases memory for reuse by destroying objects that
are no longer in use.

In C#.NET, the garbage collector checks for the objects that are not currently in
use by applications. When the garbage collector comes across an object that is
marked for garbage collection, it releases the memory occupied by the object.

Overloading

Overloading is another feature in C#. Overloading enables us to define


multiple procedures with the same name, where each procedure has a different set
of arguments. Besides using overloading for procedures, we can use it for
constructors and properties in a class.

Multithreading:

C#.NET also supports multithreading. An application that supports


multithreading can handle multiple tasks simultaneously, we can use
multithreading to decrease the time taken by an application to respond to user
interaction.

11
Structured Exception Handling

C#.NET supports structured handling, which enables us to detect and


remove errors at runtime. In C#.NET, we need to use Try…Catch…Finally
statements to create exception handlers. Using Try…Catch…Finally statements,
we can create robust and effective exception handlers to improve the performance
of our application.

The .Net Framework

The .NET Framework is a new computing platform that simplifies application


development in the highly distributed environment of the Internet.

Objectives Of. Net Framework

1. To provide a consistent object-oriented programming environment whether


object codes is stored and executed locally on Internet-distributed, or executed
remotely.

2. To provide a code-execution environment to minimizes software deployment


and guarantees safe execution of code.

3. Eliminates the performance problems.

There are different types of application, such as Windows-based applications and


Web-based applications.

12
4.2 Features Of Sql Server
The OLAP Services feature available in SQL Server version 7.0 is
now called SQL Server 2000 Analysis Services. The term OLAP Services has been
replaced with the term Analysis Services. Analysis Services also includes a new data
mining component. The Repository component available in SQL Server version 7.0 is
now called Microsoft SQL Server 2000 Meta Data Services. References to the
component now use the term Meta Data Services. The term repository is used only in
reference to the repository engine within Meta Data Services

SQL-SERVER database consist of six type of objects,

They are,

1. TABLE

2. QUERY

3. FORM

4. REPORT

5. MACRO

Table:

A database is a collection of data about a specific topic.

Views Of Table:

We can work with a table in two types,

1. Design View

2. Datasheet View

13
Design View

To build or modify the structure of a table we work in the table design view.
We can specify what kind of data will be hold.

Datasheet View

To add, edit or analyses the data itself we work in tables datasheet

view mode.

Query:

A query is a question that has to be asked the data. Access gathers data that
answers the question from one or more table. The data that make up the answer is
either dynaset (if you edit it) or a snapshot (it cannot be edited).Each time we run
query, we get latest information in the dynaset. Access either displays the dynaset or
snapshot for us to view or perform an action on it, such as deleting or updating

14
5.PROJECT DETAILS

5.1. Modules Description


1. Pass Points Module.
2. Cued Click Points Module.
3. Persuasive Cued Click- Points Module.
5.1.1 Pass Points Module:

Based on Blonder’s original idea, Pass Points (PP) is a click-based graphical


password system where a password consists of an ordered sequence of five click-
points on a pixel-based image. To log in, a user must click within some system-
defined tolerance region for each click-point. The image acts as a cue to help users
remember their password click-points.
5.1.2 Cued Click Points Module:
Cued Click Points (CCP) was developed as an alternative click based
graphical password scheme where users select one point per image for five images.
The interface displays only one image at a time; the image is replaced by the next
image as soon as a user selects a click point. The system determines the next image to
display based on the user’s click-point on the current image. The next image
displayed to users is based on a deterministic function of the point which is currently
selected. It now presents a one to-one cued recall scenario where each image triggers
the user’s memory of the one click-point on that image. Secondly, if a user enters an
incorrect click-point during login, the next image displayed will also be incorrect.
Legitimate users who see an unrecognized image know that they made an error with
their previous click-point. Conversely, this implicit feedback is not helpful to an
attacker who does not know the expected sequence of images.

15
5.1.3 Persuasive Cued Click- Points Module:

To address the issue of hotspots, Persuasive Cued Click Points (PCCP) was
proposed. As with CCP, a password consists of five click points, one on each of five
images. During password creation, most of the image is dimmed except for a small
view port area that is randomly positioned on the image. Users must select a click-
point within the view port. If they are unable or unwilling to select a point in the
current view port, they may press the Shuffle button to randomly reposition the view
port. The view port guides users to select more random passwords that are less likely
to include hotspots. A user who is determined to reach a certain click-point may still
shuffle until the view port moves to the specific location, but this is a time consuming
and more tedious process.

16
5.2DATA FLOW DIAGRAM

R e g is t rat io n
O n e Im a g e -
F i v e C li c k in g

L o g in
S te p 1
F i v e I m a g es -T r e e
E a c h i m a g e e a ch C li c k in g

L o g in
S te p 2 O n e Im ag e-
T o S l ic e th a t i m a g e

L o g in
S te p 3

U p l o a d F ile

D at a Ba s e

In b o x

U p d at e P ro fi le

En d

17
6.SAMPLE CODEING

DEFAULT PAGE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections;
using System.Data;

public partial class _Default : System.Web.UI.Page

SqlConnection con = new


SqlConnection(ConfigurationManager.AppSettings["connection"]);
protected void Page_Load(object sender, EventArgs e)
{

}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("register.aspx");
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from regis where uname='" +
TextBox1.Text + "' and pass='" + TextBox2.Text + "'", con);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
Session["ids"] = ds.Tables[0].Rows[0]["id"].ToString();
Session["nam"] = ds.Tables[0].Rows[0]["nam"].ToString();
Response.Redirect("login2.aspx");
}
else
{
RegisterStartupScript("msg","<script>alert('Invalid UserName/Password')</script>");
}
con.Close();
} }

18
INBOX

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Collections.Generic;

public partial class inbox : System.Web.UI.Page


{
//string a,b;
SqlConnection con = new
SqlConnection(ConfigurationManager.AppSettings["connection"]);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label2.Text = (string)Session["nam"];
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("select ids,froms,tos,subs,dates,fname
from
uploads where tos='" + Label2.Text + "'", con);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = ds;
GridView1.DataBind();
}
else
{
RegisterStartupScript("msg", "<script>alert('No Data Here...')</script>");
}
con.Close();
}
}

19
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgse)
{
con.Open();
Label3.Text = GridView1.Rows[e.RowIndex].Cells[0].Text;
SqlCommand cmd = new SqlCommand("delete from uploads where ids='" +
Label3.Text + "'", con);
cmd.ExecuteNonQuery();
SqlDataAdapter sda = new SqlDataAdapter("select
ids,froms,tos,subs,dates,fname from uploads where tos='" + Label2.Text + "'",
con);
DataSet ds = new DataSet();
sda.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}
private DataTable GetData(SqlCommand cmd)
{
DataTable dt = new DataTable();
SqlConnection con = new
SqlConnection(ConfigurationManager.AppSettings["connection"]);
SqlDataAdapter sda = new SqlDataAdapter();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try
{
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
return dt;
}
catch
{
return null;
}
finally
{
con.Close();
sda.Dispose();
con.Dispose();
}
}
private void download(DataTable dt)
{
if (dt.Rows.Count > 0)
{

20
Byte[] bytes = (Byte[])dt.Rows[0]["files"];
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AddHeader("content-disposition", "attachment;filename=" +
dt.Rows[0]["fname"].ToString());
switch (dt.Rows[0]["types"].ToString())
{
case ".pdf":
Response.ContentType = "application/pdf";
break;
case ".jpg":
Response.ContentType = "application/jpg";
break;
case ".doc":
Response.ContentType = "application/msword";
break;
case ".ppt":
Response.ContentType = "application/ppt";
break;
case ".gif":
Response.ContentType = "application/gif";
break;
case ".zip":
Response.ContentType = "application/zip";
break;
case ".ico":
Response.ContentType = "application/ico";
break;
case ".xls":
case ".csv":
Response.ContentType = "application/xls";
break;
case ".htm":
case ".html":
Response.ContentType = "text/html";
break;
case ".txt":
Response.ContentType = "text/plain";
break;
case ".exe":
Response.ContentType = "application/zip";
break;
default:
Response.ContentType = "application/octet-stream";
break;

21
}
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
}
protected void GridView1_SelectedIndexChanging(object sender,
GridViewSelectEventArgs e)
{
Label4.Text = GridView1.Rows[e.NewSelectedIndex].Cells[0].Text;
con.Open();
SqlCommand cmd = new SqlCommand("select * from uploads where ids = '"
Label4.Text + "'", con);
DataTable dt = GetData(cmd);
if (dt != null)
{
download(dt);
}
con.Close();
}
}

22
LOGIN PAGE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Data;
using System.Web.Security;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class login2 : System.Web.UI.Page
{
SqlConnection con = new
SqlConnection(ConfigurationManager.AppSettings["connection"]);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label6.Text = "0";
Label4.Text = "";
Label7.Text = "0";
}
}
protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Default.aspx");
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (Convert.ToInt32(Label6.Text) < 5)
{
Label6.Text = Convert.ToString(Convert.ToInt32(Label6.Text) + 1);
Label4.Text = Label4.Text + e.X.ToString() + "," + e.Y.ToString() + ",";
}
else
{
RegisterStartupScript("msg", "<script>alert('You Click Only 5 Points.')</script>");
}
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)

23
{
if (Convert.ToInt32(Label6.Text) == 5)
{
Label7.Text = Convert.ToString(Convert.ToInt32(Label7.Text) + 1);
con.Open();
SqlDataAdapter sda=new SqlDataAdapter("select * from regis where id='"+
(string)Session["ids"] + "'", con);
ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["fpoint"].ToString() == Label4.Text)
{
Label6.Text = "0";
Label4.Text = "";
Response.Redirect("login3.aspx");
}
else
{
if (Convert.ToInt32(Label7.Text) < 4)
{
RegisterStartupScript("msg", "<script>alert('Invalid Clicking Points. 3 Possible
Only')</script>")
Label6.Text = "0";
Label4.Text = "";
}
else
{
Response.Redirect("Default.aspx");
}
}
}
}
else
{
RegisterStartupScript("msg", "<script>alert('You Only Clicked " +
(Convert.ToInt32(Label6.Text)) + " Points. Click Reminder " + (5 -
(Convert.ToInt32(Label6.Text))) + " Points...')</script>");
}
}
}

24
INBOX 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

public partial class login3 : System.Web.UI.Page


{
SqlConnection con = new
SqlConnection(ConfigurationManager.AppSettings["connection"]);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = "0";
Label2.Text = "";
Label3.Text = "0";
ImageMap1.Visible = true;
ImageMap2.Visible = false;
ImageMap3.Visible = false;
ImageMap4.Visible = false;
ImageMap5.Visible = false;
}
}
protected void ImageMap1_Click(object sender, ImageMapEventArgs e)
{
Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
if (Convert.ToInt32(Label1.Text) <= 5)
{
ImageMap1.Visible = false;
ImageMap2.Visible = true;
ImageMap3.Visible = false;
ImageMap4.Visible = false;
ImageMap5.Visible = false;
switch (e.PostBackValue)
{
case "1":
Label2.Text = "1A" + ",";
break;

25
case "2":
Label2.Text = "1B" + ",";
break;
case "3":
Label2.Text = "1C" + ",";
break;
case "4":
Label2.Text = "1D" + ",";
break;
case "5":
Label2.Text = "1E" + ",";
break;
case "6":
Label2.Text = "1F" + ",";
break;
case "7":
Label2.Text = "1G" + ",";
break;
case "8":
Label2.Text = "1H" + ",";
break;
case "9":
Label2.Text = "1I" + ",";
break;
case "10":
Label2.Text = "1J" + ",";
break;
case "11":
Label2.Text = "1K" + ",";
break;
case "12":
Label2.Text = "1L" + ",";
break;
case "13":
Label2.Text = "1M" + ",";
break;
case "14":
Label2.Text = "1N" + ",";
break;
case "15":
Label2.Text = "1O" + ",";
break;
case "16":
Label2.Text = "1P" + ",";
break;
case "17":

26
Label2.Text = "1Q" + ",";
break;
case "18":
Label2.Text = "1R" + ",";
break;
case "19":
Label2.Text = "1S" + ",";
break;
case "20":
Label2.Text = "1T" + ",";
break;
case "21":
Label2.Text = "1U" + ",";
break;
case "22":
Label2.Text = "1V" + ",";
break;
case "23":
Label2.Text = "1W" + ",";
break;
case "24":
Label2.Text = "1X" + ",";
break;
case "25":
Label2.Text = "1Y" + ",";
break;
case "26":
Label2.Text = "1Z" + ",";
break;
case "27":
Label2.Text = "1a" + ",";
break;
case "28":
Label2.Text = "1b" + ",";
break;
case "29":
Label2.Text = "1c" + ",";
break;
case "30":
Label2.Text = "1d" + ",";
break;

case "31":
Label2.Text = "1e" + ",";
break;
case "32":

27
Label2.Text = "1f" + ",";
break;
case "33":
Label2.Text = "1g" + ",";
break;
case "34":
Label2.Text = "1h" + ",";
break;
case "35":
Label2.Text = "1i" + ",";
break;
case "36":
Label2.Text = "1j" + ",";
break;
case "37":
Label2.Text = "1k" + ",";
break;
case "38":
Label2.Text = "1l" + ",";
break;
case "39":
Label2.Text = "1m" + ",";
break;
case "40":
Label2.Text = "1n" + ",";
break;
case "41":
Label2.Text = "1o" + ",";
break;
case "42":
Label2.Text = "1p" + ",";
break;
case "43":
Label2.Text = "1q" + ",";
break;
case "44":
Label2.Text = "1r" + ",";
break;
case "45":
Label2.Text = "1s" + ",";
break;
case "46":
Label2.Text = "1t" + ",";
break;
case "47":
Label2.Text = "1u" + ",";

28
break;
case "48":
Label2.Text = "1v" + ",";
break;
case "49":
Label2.Text = "1w" + ",";
break;
case "50":
Label2.Text = "1x" + ",";
break;
case "51":
Label2.Text = "1y" + ",";
break;
case "52":
Label2.Text = "1z" + ",";
break;
case "53":
Label2.Text = "10" + ",";
break;
case "54":
Label2.Text = "11" + ",";
break;
case "55":
Label2.Text = "12" + ",";
break;
case "56":
Label2.Text = "13" + ",";
break;
case "57":
Label2.Text = "14" + ",";
break;
case "58":
Label2.Text = "15" + ",";
break;
case "59":
Label2.Text = "16" + ",";
break;
case "60":
Label2.Text = "17" + ",";
break;
case "61":
Label2.Text = "18" + ",";
break;
case "62":
Label2.Text = "19" + ",";
break;

29
case "63":
Label2.Text = "1AA" + ",";
break;
case "64":
Label2.Text = "1BB" + ",";
break;
case "65":
Label2.Text = "1CC" + ",";
break;
case "66":
Label2.Text = "1DD" + ",";
break;
case "67":
Label2.Text = "1EE" + ",";
break;
case "68":
Label2.Text = "1FF" + ",";
break;
case "69":
Label2.Text = "1GG" + ",";
break;
case "70":
Label2.Text = "1HH" + ",";
break;
case "71":
Label2.Text = "1II" + ",";
break;
case "72":
Label2.Text = "1JJ" + ",";
break;
case "73":
Label2.Text = "1KK" + ",";
break;
case "74":
Label2.Text = "1LL" + ",";
break;
case "75":
Label2.Text = "1MM" + ",";
break;
case "76":
Label2.Text = "1NN" + ",";
break;
case "77":
Label2.Text = "1OO" + ",";
break;
case "78":

30
Label2.Text = "1PP" + ",";
break;
case "79":
Label2.Text = "1QQ" + ",";
break;
case "80":
Label2.Text = "1RR" + ",";
break;
case "81":
Label2.Text = "1SS" + ",";
break;
case "82":
Label2.Text = "1TT" + ",";
break;
case "83":
Label2.Text = "1UU" + ",";
break;
case "84":
Label2.Text = "1VV" + ",";
break;
case "85":
Label2.Text = "1WW" + ",";
break;
case "86":
Label2.Text = "1XX" + ",";
break;
case "87":
Label2.Text = "1YY" + ",";
break;
case "88":
Label2.Text = "1ZZ" + ",";
break;
case "89":
Label2.Text = "1aa" + ",";
break;
case "90":
Label2.Text = "1bb" + ",";
break;
case "91":
Label2.Text = "1cc" + ",";
break;
case "92":
Label2.Text = "1dd" + ",";
break;
case "93":
Label2.Text = "1ee" + ",";

31
break;
case "94":
Label2.Text = "1ff" + ",";
break;
case "95":
Label2.Text = "1gg" + ",";
break;
case "96":
Label2.Text = "1hh" + ",";
break;
case "97":
Label2.Text = "1ii" + ",";
break;
case "98":
Label2.Text = "1jj" + ",";
break;
case "99":
Label2.Text = "1kk" + ",";
break;
case "100":
Label2.Text = "1ll" + ",";
break;
}
}
else
{
RegisterStartupScript("msg", "<script>alert('5 Clicking Points Only...')</script>");
}
}
protected void ImageMap2_Click(object sender, ImageMapEventArgs e)
{
Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
if (Convert.ToInt32(Label1.Text) <= 5)
{
ImageMap1.Visible = false;
ImageMap2.Visible = false;
ImageMap3.Visible = true;
ImageMap4.Visible = false;
ImageMap5.Visible = false;
switch (e.PostBackValue)
{
case "1":
Label2.Text = Label2.Text + "2A" + ",";
break;
case "2":
Label2.Text = Label2.Text + "2B" + ",";

32
break;
case "3":
Label2.Text = Label2.Text + "2C" + ",";
break;
case "4":
Label2.Text = Label2.Text + "2D" + ",";
break;
case "5":
Label2.Text = Label2.Text + "2E" + ",";
break;
case "6":
Label2.Text = Label2.Text + "2F" + ",";
break;
case "7":
Label2.Text = Label2.Text + "2G" + ",";
break;
case "8":
Label2.Text = Label2.Text + "2H" + ",";
break;
case "9":
Label2.Text = Label2.Text + "2I" + ",";
break;
case "10":
Label2.Text = Label2.Text + "2J" + ",";
break;
case "11":
Label2.Text = Label2.Text + "2K" + ",";
break;
case "12":
Label2.Text = Label2.Text + "2L" + ",";
break;
case "13":
Label2.Text = Label2.Text + "2M" + ",";
break;
case "14":
Label2.Text = Label2.Text + "2N" + ",";
break;
case "15":
Label2.Text = Label2.Text + "2O" + ",";
break;
case "16":
Label2.Text = Label2.Text + "2P" + ",";
break;
case "17":
Label2.Text = Label2.Text + "2Q" + ",";
break;

33
case "18":
Label2.Text = Label2.Text + "2R" + ",";
break;
case "19":
Label2.Text = Label2.Text + "2S" + ",";
break;
case "20":
Label2.Text = Label2.Text + "2T" + ",";
break;
case "21":
Label2.Text = Label2.Text + "2U" + ",";
break;
case "22":
Label2.Text = Label2.Text + "2V" + ",";
break;
case "23":
Label2.Text = Label2.Text + "2W" + ",";
break;
case "24":
Label2.Text = Label2.Text + "2X" + ",";
break;
case "25":
Label2.Text = Label2.Text + "2Y" + ",";
break;
case "26":
Label2.Text = Label2.Text + "2Z" + ",";
break;
case "27":
Label2.Text = Label2.Text + "2a" + ",";
break;
case "28":
Label2.Text = Label2.Text + "2b" + ",";
break;
case "29":
Label2.Text = Label2.Text + "2c" + ",";
break;
case "30":
Label2.Text = Label2.Text + "2d" + ",";
break;
case "31":
Label2.Text = Label2.Text + "2e" + ",";
break;
case "32":
Label2.Text = Label2.Text + "2f" + ",";
break;
case "33":

34
Label2.Text = Label2.Text + "2g" + ",";
break;
case "34":
Label2.Text = Label2.Text + "2h" + ",";
break;
case "35":
Label2.Text = Label2.Text + "2i" + ",";
break;
case "36":
Label2.Text = Label2.Text + "2j" + ",";
break;
case "37":
Label2.Text = Label2.Text + "2k" + ",";
break;
case "38":
Label2.Text = Label2.Text + "2l" + ",";
break;
case "39":
Label2.Text = Label2.Text + "2m" + ",";
break;
case "40":
Label2.Text = Label2.Text + "2n" + ",";
break;
case "41":
Label2.Text = Label2.Text + "2o" + ",";
break;
case "42":
Label2.Text = Label2.Text + "2p" + ",";
break;
case "43":
Label2.Text = Label2.Text + "2q" + ",";
break;
case "44":
Label2.Text = Label2.Text + "2r" + ",";
break;
case "45":
Label2.Text = Label2.Text + "2s" + ",";
break;
case "46":
Label2.Text = Label2.Text + "2t" + ",";
break;
case "47":
Label2.Text = Label2.Text + "2u" + ",";
break;
case "48":
Label2.Text = Label2.Text + "2v" + ",";

35
break;
case "49":
Label2.Text = Label2.Text + "2w" + ",";
break;
case "50":
Label2.Text = Label2.Text + "2x" + ",";
break;
case "51":
Label2.Text = Label2.Text + "2y" + ",";
break;
case "52":
Label2.Text = Label2.Text + "2z" + ",";
break;
case "53":
Label2.Text = Label2.Text + "20" + ",";
break;
case "54":
Label2.Text = Label2.Text + "21" + ",";
break;
case "55":
Label2.Text = Label2.Text + "22" + ",";
break;
case "56":
Label2.Text = Label2.Text + "23" + ",";
break;
case "57":
Label2.Text = Label2.Text + "24" + ",";
break;
case "58":
Label2.Text = Label2.Text + "25" + ",";
break;
case "59":
Label2.Text = Label2.Text + "26" + ",";
break;
case "60":
Label2.Text = Label2.Text + "27" + ",";
break;
case "61":
Label2.Text = Label2.Text + "28" + ",";
break;
case "62":
Label2.Text = Label2.Text + "29" + ",";
break;
case "63":
Label2.Text = Label2.Text + "2AA" + ",";
break;

36
case "64":
Label2.Text = Label2.Text + "2BB" + ",";
break;
case "65":
Label2.Text = Label2.Text + "2CC" + ",";
break;
case "66":
Label2.Text = Label2.Text + "2DD" + ",";
break;
case "67":
Label2.Text = Label2.Text + "2EE" + ",";
break;
case "68":
Label2.Text = Label2.Text + "2FF" + ",";
break;
case "69":
Label2.Text = Label2.Text + "2GG" + ",";
break;
case "70":
Label2.Text = Label2.Text + "2HH" + ",";
break;
case "71":
Label2.Text = Label2.Text + "2II" + ",";
break;
case "72":
Label2.Text = Label2.Text + "2JJ" + ",";
break;
case "73":
Label2.Text = Label2.Text + "2KK" + ",";
break;
case "74":
Label2.Text = Label2.Text + "2LL" + ",";
break;
case "75":
Label2.Text = Label2.Text + "2MM" + ",";
break;
case "76":
Label2.Text = Label2.Text + "2NN" + ",";
break;
case "77":
Label2.Text = Label2.Text + "2OO" + ",";
break;
case "78":
Label2.Text = Label2.Text + "2PP" + ",";
break;
case "79":

37
Label2.Text = Label2.Text + "2QQ" + ",";
break;
case "80":
Label2.Text = Label2.Text + "2RR" + ",";
break;
case "81":
Label2.Text = Label2.Text + "2SS" + ",";
break;
case "82":
Label2.Text = Label2.Text + "2TT" + ",";
break;
case "83":
Label2.Text = Label2.Text + "2UU" + ",";
break;
case "84":
Label2.Text = Label2.Text + "2VV" + ",";
break;
case "85":
Label2.Text = Label2.Text + "2WW" + ",";
break;
case "86":
Label2.Text = Label2.Text + "2XX" + ",";
break;
case "87":
Label2.Text = Label2.Text + "2YY" + ",";
break;
case "88":
Label2.Text = Label2.Text + "2ZZ" + ",";
break;
case "89":
Label2.Text = Label2.Text + "2aa" + ",";
break;
case "90":
Text = Label2.Text + "2bb" + ",";
break;
case "91":
Label2.Text = Label2.Text + "2cc" + ",";
break;
case "92":
Label2.Text = Label2.Text + "2dd" + ",";
break;
case "93":
Label2.Text = Label2.Text + "2ee" + ",";
break;
case "94":
Label2.Text = Label2.Text + "2ff" + ",";

38
break;
case "95":
Label2.Text = Label2.Text + "2gg" + ",";
break;
case "96":
Label2.Text = Label2.Text + "2hh" + ",";
break;
case "97":
Label2.Text = Label2.Text + "2ii" + ",";
break;
case "98":
Label2.Text = Label2.Text + "2jj" + ",";
break;
case "99":
Label2.Text = Label2.Text + "2kk" + ",";
break;
case "100":
Label2.Text = Label2.Text + "2ll" + ",";
break;
}
}
else
{
RegisterStartupScript("msg", "<script>alert('5 Clicking Points Only...')</script>");
}
}
protected void ImageMap3_Click(object sender, ImageMapEventArgs e)
{
Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
if (Convert.ToInt32(Label1.Text) <= 5)
{
ImageMap1.Visible = false;
ImageMap2.Visible = false;
ImageMap3.Visible = false;
ImageMap4.Visible = true;
ImageMap5.Visible = false;
switch (e.PostBackValue)
{
case "1":
Label2.Text = Label2.Text + "3A" + ",";
break;
case "2":
Label2.Text = Label2.Text + "3B" + ",";
break;
case "3":
Label2.Text = Label2.Text + "3C" + ",";

39
break;
case "4":
Label2.Text = Label2.Text + "3D" + ",";
break;
case "5":
Label2.Text = Label2.Text + "3E" + ",";
break;
case "6":
Label2.Text = Label2.Text + "3F" + ",";
break;
case "7":
Label2.Text = Label2.Text + "3G" + ",";
break;
case "8":
Label2.Text = Label2.Text + "3H" + ",";
break;
case "9":
Label2.Text = Label2.Text + "3I" + ",";
break;
case "10":
Label2.Text = Label2.Text + "3J" + ",";
break;
case "11":
Label2.Text = Label2.Text + "3K" + ",";
break;
case "12":
Label2.Text = Label2.Text + "3L" + ",";
break;
case "13":
Label2.Text = Label2.Text + "3M" + ",";
break;
case "14":
Label2.Text = Label2.Text + "3N" + ",";
break;
case "15":
Label2.Text = Label2.Text + "3O" + ",";
break;
case "16":
Label2.Text = Label2.Text + "3P" + ",";
break;
case "17":
Label2.Text = Label2.Text + "3Q" + ",";
break;
case "18":
Label2.Text = Label2.Text + "3R" + ",";
break;

40
case "19":
Label2.Text = Label2.Text + "3S" + ",";
break;
case "20":
Label2.Text = Label2.Text + "3T" + ",";
break;
case "21":
Label2.Text = Label2.Text + "3U" + ",";
break;
case "22":
Label2.Text = Label2.Text + "3V" + ",";
break;
case "23":
Label2.Text = Label2.Text + "3W" + ",";
break;
case "24":
Label2.Text = Label2.Text + "3X" + ",";
break;
case "25":
Label2.Text = Label2.Text + "3Y" + ",";
break;
case "26":
Label2.Text = Label2.Text + "3Z" + ",";
break;
case "27":
Label2.Text = Label2.Text + "3a" + ",";
break;
case "28":
Label2.Text = Label2.Text + "3b" + ",";
break;
case "29":
Label2.Text = Label2.Text + "3c" + ",";
break;
case "30":
Label2.Text = Label2.Text + "3d" + ",";
break;
case "31":
Label2.Text = Label2.Text + "3e" + ",";
break;
case "32":
Label2.Text = Label2.Text + "3f" + ",";
break;
case "33":
Label2.Text = Label2.Text + "3g" + ",";
break;
case "34":

41
Label2.Text = Label2.Text + "3h" + ",";
break;
case "35":
Label2.Text = Label2.Text + "3i" + ",";
break;
case "36":
Label2.Text = Label2.Text + "3j" + ",";
break;
case "37":
Label2.Text = Label2.Text + "3k" + ",";
break;
case "38":
Label2.Text = Label2.Text + "3l" + ",";
break;
case "39":
Label2.Text = Label2.Text + "3m" + ",";
break;
case "40":
Label2.Text = Label2.Text + "3n" + ",";
break;
case "41":
Label2.Text = Label2.Text + "3o" + ",";
break;
case "42":
Label2.Text = Label2.Text + "3p" + ",";
break;
case "43":
Label2.Text = Label2.Text + "3q" + ",";
break;
case "44":
Label2.Text = Label2.Text + "3r" + ",";
break;
case "45":
Label2.Text = Label2.Text + "3s" + ",";
break;
case "46":
Label2.Text = Label2.Text + "3t" + ",";
break;
case "47":
Label2.Text = Label2.Text + "3u" + ",";
break;
case "48":
Label2.Text = Label2.Text + "3v" + ",";
break;
case "49":
Label2.Text = Label2.Text + "3w" + ",";

42
break;
case "50":
Label2.Text = Label2.Text + "3x" + ",";
break;
case "51":
Label2.Text = Label2.Text + "3y" + ",";
break;
case "52":
Label2.Text = Label2.Text + "3z" + ",";
break;
case "53":
Label2.Text = Label2.Text + "30" + ",";
break;
case "54":
Label2.Text = Label2.Text + "31" + ",";
break;
case "55":
Label2.Text = Label2.Text + "32" + ",";
break;
case "56":
Label2.Text = Label2.Text + "33" + ",";
break;
case "57":
Label2.Text = Label2.Text + "34" + ",";
break;
case "58":
Label2.Text = Label2.Text + "35" + ",";
break;
case "59":
Text = Label2.Text + "36" + ",";
break;
case "60":
Label2.Text = Label2.Text + "37" + ",";
break;
case "61":
Label2.Text = Label2.Text + "38" + ",";
break;
case "62":
Label2.Text = Label2.Text + "39" + ",";
break;
case "63":
Label2.Text = Label2.Text + "3AA" + ",";
break;
case "64":
Label2.Text = Label2.Text + "3BB" + ",";
break;

43
case "65":
Label2.Text = Label2.Text + "3CC" + ",";
break;
case "66":
Label2.Text = Label2.Text + "3DD" + ",";
break;
case "67":
Label2.Text = Label2.Text + "3EE" + ",";
break;
case "68":
Label2.Text = Label2.Text + "3FF" + ",";
break;
case "69":
Label2.Text = Label2.Text + "3GG" + ",";
break;
case "70":
Label2.Text = Label2.Text + "3HH" + ",";
break;
case "71":
Label2.Text = Label2.Text + "3II" + ",";
break;
case "72":
Label2.Text = Label2.Text + "3JJ" + ",";
break;
case "73":
Label2.Text = Label2.Text + "3KK" + ",";
break;
case "74":
Label2.Text = Label2.Text + "3LL" + ",";
break;
case "75":
Label2.Text = Label2.Text + "3MM" + ",";
break;
case "76":
Label2.Text = Label2.Text + "3NN" + ",";
break;
case "77":
Label2.Text = Label2.Text + "3OO" + ",";
break;
case "78":
Label2.Text = Label2.Text + "3PP" + ",";
break;
case "79":
Label2.Text = Label2.Text + "3QQ" + ",";
break;
case "80":

44
Label2.Text = Label2.Text + "3RR" + ",";
break;
case "81":
Label2.Text = Label2.Text + "3SS" + ",";
break;
case "82":
Label2.Text = Label2.Text + "3TT" + ",";
break;
case "83":
Label2.Text = Label2.Text + "3UU" + ",";
break;
case "84":
Label2.Text = Label2.Text + "3VV" + ",";
break;
case "85":
Label2.Text = Label2.Text + "3WW" + ",";
break;
case "86":
Label2.Text = Label2.Text + "3XX" + ",";
break;
case "87":
Label2.Text = Label2.Text + "3YY" + ",";
break;
case "88":
Label2.Text = Label2.Text + "3ZZ" + ",";
break;
case "89":
Label2.Text = Label2.Text + "3aa" + ",";
break;
case "90":
Label2.Text = Label2.Text + "3bb" + ",";
break;
case "91":
Label2.Text = Label2.Text + "3cc" + ",";
break;
case "92":
Label2.Text = Label2.Text + "3dd" + ",";
break;
case "93":
Label2.Text = Label2.Text + "3ee" + ",";
break;
case "94":
Label2.Text = Label2.Text + "3ff" + ",";
break;
case "95":
Label2.Text = Label2.Text + "3gg" + ",";

45
break;
case "96":
Label2.Text = Label2.Text + "3hh" + ",";
break;
case "97":
Label2.Text = Label2.Text + "3ii" + ",";
break;
case "98":
Label2.Text = Label2.Text + "3jj" + ",";
break;
case "99":
Label2.Text = Label2.Text + "3kk" + ",";
break;
case "100":
Label2.Text = Label2.Text + "3ll" + ",";
break;
}
}
else
{
RegisterStartupScript("msg", "<script>alert('5 Clicking Points Only...')</script>");
}
}
protected void ImageMap4_Click(object sender, ImageMapEventArgs e)
{
Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
if (Convert.ToInt32(Label1.Text) <= 5)
{
ImageMap1.Visible = false;
ImageMap2.Visible = false;
ImageMap3.Visible = false;
ImageMap4.Visible = false;
ImageMap5.Visible = true;
switch (e.PostBackValue)
{
case "1":
Text = Label2.Text + "4A" + ",";
break;
case "2":
Label2.Text = Label2.Text + "4B" + ",";
break;
case "3":
Label2.Text = Label2.Text + "4C" + ",";
break;
case "4":
Label2.Text = Label2.Text + "4D" + ",";

46
break;
case "5":
Label2.Text = Label2.Text + "4E" + ",";
break;
case "6":
Label2.Text = Label2.Text + "4F" + ",";
break;
case "7":
Text = Label2.Text + "4G" + ",";
break;
case "8":
Label2.Text = Label2.Text + "4H" + ",";
break;
case "9":
Label2.Text = Label2.Text + "4I" + ",";
break;
case "10":
Label2.Text = Label2.Text + "4J" + ",";
break;
case "11":
Label2.Text = Label2.Text + "4K" + ",";
break;
case "12":
Label2.Text = Label2.Text + "4L" + ",";
break;
case "13":
Label2.Text = Label2.Text + "4M" + ",";
break;
case "14":
Label2.Text = Label2.Text + "4N" + ",";
break;
case "15":
Label2.Text = Label2.Text + "4O" + ",";
break;
case "16":
Label2.Text = Label2.Text + "4P" + ",";
break;
case "17":
Label2.Text = Label2.Text + "4Q" + ",";
break;
case "18":
Label2.Text = Label2.Text + "4R" + ",";
break;
case "19":
Label2.Text = Label2.Text + "4S" + ",";
break;

47
case "20":
Label2.Text = Label2.Text + "4T" + ",";
break;
case "21":
Label2.Text = Label2.Text + "4U" + ",";
break;
case "22":
Label2.Text = Label2.Text + "4V" + ",";
break;
case "23":
Label2.Text = Label2.Text + "4W" + ",";
break;
case "24":
Label2.Text = Label2.Text + "4X" + ",";
break;
case "25":
Label2.Text = Label2.Text + "4Y" + ",";
break;
case "26":
Label2.Text = Label2.Text + "4Z" + ",";
break;
case "27":
Label2.Text = Label2.Text + "4a" + ",";
break;
case "28":
Label2.Text = Label2.Text + "4b" + ",";
break;
case "29":
Label2.Text = Label2.Text + "4c" + ",";
break;
case "30":
Label2.Text = Label2.Text + "4d" + ",";
break;
case "31":
Label2.Text = Label2.Text + "4e" + ",";
break;
case "32":
Label2.Text = Label2.Text + "4f" + ",";
break;
case "33":
Label2.Text = Label2.Text + "4g" + ",";
break;
case "34":
Label2.Text = Label2.Text + "4h" + ",";
break;
case "35":

48
Label2.Text = Label2.Text + "4i" + ",";
break;
case "36":
Label2.Text = Label2.Text + "4j" + ",";
break;
case "37":
Label2.Text = Label2.Text + "4k" + ",";
break;
case "38":
Label2.Text = Label2.Text + "4l" + ",";
break;
case "39":
Label2.Text = Label2.Text + "4m" + ",";
break;
case "40":
Label2.Text = Label2.Text + "4n" + ",";
break;
case "41":
Label2.Text = Label2.Text + "4o" + ",";
break;
case "42":
Label2.Text = Label2.Text + "4p" + ",";
break;
case "43":
Label2.Text = Label2.Text + "4q" + ",";
break;
case "44":
Label2.Text = Label2.Text + "4r" + ",";
break;
case "45":
Label2.Text = Label2.Text + "4s" + ",";
break;
case "46":
Label2.Text = Label2.Text + "4t" + ",";
break;
case "47":
Label2.Text = Label2.Text + "4u" + ",";
break;
case "48":
Label2.Text = Label2.Text + "4v" + ",";
break;
case "49":
Label2.Text = Label2.Text + "4w" + ",";
break;
case "50":
Label2.Text = Label2.Text + "4x" + ",";

49
break;
case "51":
Label2.Text = Label2.Text + "4y" + ",";
break;
case "52":
Label2.Text = Label2.Text + "4z" + ",";
break;
case "53":
Label2.Text = Label2.Text + "40" + ",";
break;
case "54":
Label2.Text = Label2.Text + "41" + ",";
break;
case "55":
Label2.Text = Label2.Text + "42" + ",";
break;
case "56":
Label2.Text = Label2.Text + "43" + ",";
break;
case "57":
Label2.Text = Label2.Text + "44" + ",";
break;
case "58":
Label2.Text = Label2.Text + "45" + ",";
break;
case "59":
Label2.Text = Label2.Text + "46" + ",";
break;
case "60":
Label2.Text = Label2.Text + "47" + ",";
break;
case "61":
Label2.Text = Label2.Text + "48" + ",";
break;
case "62":
Label2.Text = Label2.Text + "49" + ",";
break;
case "63":
Label2.Text = Label2.Text + "4AA" + ",";
break;
case "64":
Label2.Text = Label2.Text + "4BB" + ",";
break;
case "65":
Label2.Text = Label2.Text + "4CC" + ",";
break;

50
case "66":
Label2.Text = Label2.Text + "4DD" + ",";
break;
case "67":
Label2.Text = Label2.Text + "4EE" + ",";
break;
case "68":
Label2.Text = Label2.Text + "4FF" + ",";
break;
case "69":
Label2.Text = Label2.Text + "4GG" + ",";
break;
case "70":
Label2.Text = Label2.Text + "4HH" + ",";
break;
case "71":
Label2.Text = Label2.Text + "4II" + ",";
break;
case "72":
Label2.Text = Label2.Text + "4JJ" + ",";
break;
case "73":
Label2.Text = Label2.Text + "4KK" + ",";
break;
case "74":
Label2.Text = Label2.Text + "4LL" + ",";
break;
case "75":
Label2.Text = Label2.Text + "4MM" + ",";
break;
case "76":
Label2.Text = Label2.Text + "4NN" + ",";
break;
case "77":
Label2.Text = Label2.Text + "4OO" + ",";
break;
case "78":
Label2.Text = Label2.Text + "4PP" + ",";
break;
case "79":
Label2.Text = Label2.Text + "4QQ" + ",";
break;
case "80":
Label2.Text = Label2.Text + "4RR" + ",";
break;
case "81":

51
Label2.Text = Label2.Text + "4SS" + ",";
break;
case "82":
.Text = Label2.Text + "4TT" + ",";
break;
case "83":
Label2.Text = Label2.Text + "4UU" + ",";
break;
case "84":
Label2.Text = Label2.Text + "4VV" + ",";
break;
case "85":
Label2.Text = Label2.Text + "4WW" + ",";
break;
case "86":
Label2.Text = Label2.Text + "4XX" + ",";
break;
case "87":
Label2.Text = Label2.Text + "4YY" + ",";
break;
case "88":
Label2.Text = Label2.Text + "4ZZ" + ",";
break;
case "89":
Label2.Text = Label2.Text + "4aa" + ",";
break;
case "90":
Label2.Text = Label2.Text + "4bb" + ",";
break;
case "91":
Label2.Text = Label2.Text + "4cc" + ",";
break;
case "92":
Label2.Text = Label2.Text + "4dd" + ",";
break;
case "93":
Label2.Text = Label2.Text + "4ee" + ",";
break;
case "94":
Label2.Text = Label2.Text + "4ff" + ",";
break;
case "95":
Label2.Text = Label2.Text + "4gg" + ",";
break;
case "96":
Label2.Text = Label2.Text + "4hh" + ",";

52
break;
case "97":
Label2.Text = Label2.Text + "4ii" + ",";
break;
case "98":
Label2.Text = Label2.Text + "4jj" + ",";
break;
case "99":
Label2.Text = Label2.Text + "4kk" + ",";
break;
case "100":
Label2.Text = Label2.Text + "4ll" + ",";
break;
}
}
else
{
RegisterStartupScript("msg", "<script>alert('5 Clicking Points Only...')</script>");
}
}
protected void ImageMap5_Click(object sender, ImageMapEventArgs e)
{
Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
if (Convert.ToInt32(Label1.Text) <= 5)
{
ImageMap1.Visible = true;
ImageMap2.Visible = false;
ImageMap3.Visible = false;
ImageMap4.Visible = false;
ImageMap5.Visible = false;
ImageButton2.Visible = true;
switch (e.PostBackValue)
{
case "1":
Label2.Text = Label2.Text + "5A" + ",";
break;
case "2":
Label2.Text = Label2.Text + "5B" + ",";
break;
case "3":
Label2.Text = Label2.Text + "5C" + ",";
break;
case "4":
Label2.Text = Label2.Text + "5D" + ",";
break;
case "5":

53
Label2.Text = Label2.Text + "5E" + ",";
break;
case "6":
Label2.Text = Label2.Text + "5F" + ",";
break;
case "7":
Label2.Text = Label2.Text + "5G" + ",";
break;
case "8":
Label2.Text = Label2.Text + "5H" + ",";
break;
case "9":
Label2.Text = Label2.Text + "5I" + ",";
break;
case "10":
Label2.Text = Label2.Text + "5J" + ",";
break;
case "11":
Label2.Text = Label2.Text + "5K" + ",";
break;
case "12":
Label2.Text = Label2.Text + "5L" + ",";
break;
case "13":
Label2.Text = Label2.Text + "5M" + ",";
break;
case "14":
Label2.Text = Label2.Text + "5N" + ",";
break;
case "15":
Label2.Text = Label2.Text + "5O" + ",";
break;
case "16":
Label2.Text = Label2.Text + "5P" + ",";
break;
case "17":
Label2.Text = Label2.Text + "5Q" + ",";
break;
case "18":
Label2.Text = Label2.Text + "5R" + ",";
break;
case "19":
Label2.Text = Label2.Text + "5S" + ",";
break;
case "20":
Label2.Text = Label2.Text + "5T" + ",";

54
break;
case "21":
Label2.Text = Label2.Text + "5U" + ",";
break;
case "22":
Label2.Text = Label2.Text + "5V" + ",";
break;
case "23":
Label2.Text = Label2.Text + "5W" + ",";
break;
case "24":
Label2.Text = Label2.Text + "5X" + ",";
break;
case "25":
Label2.Text = Label2.Text + "5Y" + ",";
break;
case "26":
Label2.Text = Label2.Text + "5Z" + ",";
break;
case "27":
Label2.Text = Label2.Text + "5a" + ",";
break;
case "28":
Label2.Text = Label2.Text + "5b" + ",";
break;
case "29":
Label2.Text = Label2.Text + "5c" + ",";
break;
case "30":
Label2.Text = Label2.Text + "5d" + ",";
break;
case "31":
Label2.Text = Label2.Text + "5e" + ",";
break;
case "32":
Label2.Text = Label2.Text + "5f" + ",";
break;
case "33":
Label2.Text = Label2.Text + "5g" + ",";
break;
case "34":
Label2.Text = Label2.Text + "5h" + ",";
break;
case "35":
Label2.Text = Label2.Text + "5i" + ",";
break;

55
case "36":
Label2.Text = Label2.Text + "5j" + ",";
break;
case "37":
Label2.Text = Label2.Text + "5k" + ",";
break;
case "38":
Label2.Text = Label2.Text + "5l" + ",";
break;
case "39":
Label2.Text = Label2.Text + "5m" + ",";
break;
case "40":
Label2.Text = Label2.Text + "5n" + ",";
break;
case "41":
Label2.Text = Label2.Text + "5o" + ",";
break;
case "42":
Label2.Text = Label2.Text + "5p" + ",";
break;
case "43":
Label2.Text = Label2.Text + "5q" + ",";
break;
case "44":
Label2.Text = Label2.Text + "5r" + ",";
break;
case "45":
Label2.Text = Label2.Text + "5s" + ",";
break;
case "46":
Label2.Text = Label2.Text + "5t" + ",";
break;
case "47":
Label2.Text = Label2.Text + "5u" + ",";
break;
case "48":
Label2.Text = Label2.Text + "5v" + ",";
break;
case "49":
Label2.Text = Label2.Text + "5w" + ",";
break;
case "50":
Label2.Text = Label2.Text + "5x" + ",";
break;
case "51":

56
Label2.Text = Label2.Text + "5y" + ",";
break;
case "52":
Label2.Text = Label2.Text + "5z" + ",";
break;
case "53":
Label2.Text = Label2.Text + "50" + ",";
break;
case "54":
Label2.Text = Label2.Text + "51" + ",";
break;
case "55":
Label2.Text = Label2.Text + "52" + ",";
break;
case "56":
Label2.Text = Label2.Text + "53" + ",";
break;
case "57":
Label2.Text = Label2.Text + "54" + ",";
break;
case "58":
Label2.Text = Label2.Text + "55" + ",";
break;
case "59":
Label2.Text = Label2.Text + "56" + ",";
break;
case "60":
Label2.Text = Label2.Text + "57" + ",";
break;
case "61":
Label2.Text = Label2.Text + "58" + ",";
break;
case "62":
Label2.Text = Label2.Text + "59" + ",";
break;
case "63":
Label2.Text = Label2.Text + "5AA" + ",";
break;
case "64":
Label2.Text = Label2.Text + "5BB" + ",";
break;
case "65":
Label2.Text = Label2.Text + "5CC" + ",";
break;
case "66":
Label2.Text = Label2.Text + "5DD" + ",";

57
break;
case "67":
Label2.Text = Label2.Text + "5EE" + ",";
break;
case "68":
Label2.Text = Label2.Text + "5FF" + ",";
break;
case "69":
Label2.Text = Label2.Text + "5GG" + ",";
break;
case "70":
Text = Label2.Text + "5HH" + ",";
break;
case "71":
Label2.Text = Label2.Text + "5II" + ",";
break;
case "72":
Label2.Text = Label2.Text + "5JJ" + ",";
break;
case "73":
Label2.Text = Label2.Text + "5KK" + ",";
break;
case "74":
Label2.Text = Label2.Text + "5LL" + ",";
break;
case "75":
Label2.Text = Label2.Text + "5MM" + ",";
break;
case "76":
Label2.Text = Label2.Text + "5NN" + ",";
break;
case "77":
Label2.Text = Label2.Text + "5OO" + ",";
break;
case "78":
Label2.Text = Label2.Text + "5PP" + ",";
break;
case "79":
Label2.Text = Label2.Text + "5QQ" + ",";
break;
case "80":
Label2.Text = Label2.Text + "5RR" + ",";
break;
case "81":
Label2.Text = Label2.Text + "5SS" + ",";
break;

58
case "82":
Label2.Text = Label2.Text + "5TT" + ",";
break;
case "83":
Label2.Text = Label2.Text + "5UU" + ",";
break;
case "84":
Label2.Text = Label2.Text + "5VV" + ",";
break;
case "85":
Label2.Text = Label2.Text + "5WW" + ",";
break;
case "86":
Label2.Text = Label2.Text + "5XX" + ",";
break;
case "87":
Label2.Text = Label2.Text + "5YY" + ",";
break;
case "88":
Label2.Text = Label2.Text + "5ZZ" + ",";
break;
case "89":
Label2.Text = Label2.Text + "5aa" + ",";
break;
case "90":
Label2.Text = Label2.Text + "5bb" + ",";
break;
case "91":
Label2.Text = Label2.Text + "5cc" + ",";
break;
case "92":
Label2.Text = Label2.Text + "5dd" + ",";
break;
case "93":
Label2.Text = Label2.Text + "5ee" + ",";
break;
case "94":
Label2.Text = Label2.Text + "5ff" + ",";
break;
case "95":
Label2.Text = Label2.Text + "5gg" + ",";
break;
case "96":
Label2.Text = Label2.Text + "5hh" + ",";
break;
case "97":

59
Label2.Text = Label2.Text + "5ii" + ",";
break;
case "98":
Label2.Text = Label2.Text + "5jj" + ",";
break;
case "99":
Label2.Text = Label2.Text + "5kk" + ",";
break;
case "100":
Label2.Text = Label2.Text + "5ll" + ",";
break;
}
}
else
{
RegisterStartupScript("msg", "<script>alert('5 Clicking Points Only...')</script>");
}
}
protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Default.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
if (Convert.ToInt32(Label1.Text) == 5)
{
Label3.Text = Convert.ToString(Convert.ToInt32(Label3.Text) + 1);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from regis where id='" +
(string)Session["ids"] + "'", con);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["fopoint"].ToString() == Label2.Text)
{
Label1.Text = "0";
Label2.Text = "";
Response.Redirect("login4.aspx");
}
else
{

60
if (Convert.ToInt32(Label3.Text) < 4)
{
RegisterStartupScript("msg", "<script>alert('Invalid Clicking Points. 3 Possible
Only')</script>");
Label1.Text = "0";
Label2.Text = "";
}
else
{
Response.Redirect("Default.aspx");
}
}
con.Close();
}
}
}

61
MENU PAGE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Menu : System.Web.UI.UserControl


{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Home.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Update.aspx");
}
protected void ImageButton4_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Upload.aspx");
}
protected void ImageButton5_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("inbox.aspx");
}
protected void ImageButton6_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Default.aspx");
}
}

62
REGISTER PAGE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class register : System.Web.UI.Page


{
ids idgen = new ids();
SqlConnection con = new
SqlConnection(ConfigurationManager.AppSettings["connection"]);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label17.Text = Convert.ToString(idgen.idgeneration());
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
con.Open();
cmd = new SqlCommand("insert into
regis(id,nam,addr1,addr2,citys,pincode,cel,mail,dob,gender,uname,pass) values('" +
Label17.Text + "','" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text
+ "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" +
TextBox7.Text + "','" + TextBox8.Text + "','" + RadioButtonList1.SelectedItem.Text
+ "','" + TextBox9.Text + "','" + TextBox10.Text + "')", con);
cmd.ExecuteNonQuery();
con.Close();
Session["id"] = Label17.Text;
Session["names"] = TextBox1.Text;
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";

63
TextBox6.Text = "";
TextBox7.Text = "";
TextBox8.Text = "";
TextBox9.Text = "";
TextBox10.Text = "";
TextBox11.Text = "";
RadioButtonList1.SelectedIndex = -1;
Label17.Text = Convert.ToString(idgen.idgeneration());
Response.Redirect("register2.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Default.aspx");
}

64
7.SCREEN LAYOUT

LOING SCREEN

65
REGISTER SCREEN

66
PASS POINTS SCREEN

67
CUED CLICK POINTS SCREEN

68
PERSUASIVE CUED CLICK- POINTS SCREEN

69
PERSUASIVE CUED CLICK- POINTS SCREEN

70
7.1INPUT DESIGN AND OUTPUT DESIGN
Input Design
The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and those
steps are necessary to put transaction data in to a usable form for processing can be
achieved by inspecting the computer to read data from a written or printed document
or it can occur by having people keying the data directly into the system. The design
of input focuses on controlling the amount of input required, controlling the errors,
avoiding delay, avoiding extra steps and keeping the process simple. The input is
designed in such a way so that it provides security and ease of use with retaining the
privacy. Input Design considered the following things.

Objectives
1.Input Design is the process of converting a user-oriented description of the
input into a computer-based system. This design is important to avoid errors in the
data input process and show the correct direction to the management for getting
correct information from the computerized system.

2. It is achieved by creating user-friendly screens for the data entry to handle


large volume of data. The goal of designing input is to make data entry easier and to
be free from errors. The data entry screen is designed in such a way that all the data
manipulates can be performed. It also provides record viewing facilities.

3.When the data is entered it will check for its validity. Data can be entered with the
help of screens. Appropriate messages are provided as when needed so that the
userwill not be in maize of instant. Thus the objective of input design is to create an
input layout that is easy to follow

71
Output Design
A quality output is one, which meets the requirements of the end user and
presents the information clearly. In any system results of processing are
communicated to the users and to other system through outputs. In output design it is
determined how the information is to be displaced for immediate need and also the
hard copy output. It is the most important and direct source information to the user.
Efficient and intelligent output design improves the system’s relationship to help user
decision-making.

1. Designing computer output should proceed in an organized, well thought out


manner; the right output must be developed while ensuring that each output element
is designed so that people will find the system can use easily and effectively. When
analysis design computer output, they should Identify the specific output that is
needed to meet the requirements.

2.Select methods for presenting information.

3.Create document, report, or other formats that contain information produced by the
system.

The output form of an information system should accomplish one or more of the
following objectives.

 Convey information about past activities, current status or projections of the


 Future.
 Signal important events, opportunities, problems, or warnings.
 Trigger an action.
 Confirm an action.

72
8. SYSTEM TESTING

The purpose of testing is to discover errors. Testing is the process of trying to


discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product It is the process of exercising software with the intent of ensuring that the
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses a
specific testing requirement.

TYPES OF TEST

Unit Testing

Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid outputs.
All decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on knowledge
of its construction and is invasive. Unit tests perform basic tests at component level
and test a specific business process, application, and/or system configuration. Unit
tests ensure that each unique path of a business process performs accurately to the
documented specifications and contains clearly defined inputs and expected results.

Integration Testing

Integration tests are designed to test integrated software components to


determine if they actually run as one program. Testing is event driven and is more
concerned with the basic outcome of screens or fields. Integration tests demonstrate
that although the components were individually satisfaction, as shown by successfully
unit testing, the combination of components is correct and consistent. Integration
testing is specifically aimed at exposing the problems that arise from the
combination of components.

73
Functional Test

Functional tests provide systematic demonstrations that functions tested are


available as specified by the business and technical requirements, system
documentation, and user manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.

Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be exercised.

Systems/Procedures : interfacing systems or procedures must be invoked.

Organization and preparation of functional tests is focused on requirements, key


functions, or special test cases. In addition, systematic coverage pertaining to identify
Business process flows; data fields, predefined processes, and successive processes
must be considered for testing. Before functional testing is complete, additional tests
are identified and the effective value of current tests is determined.

System Test

System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.

74
White Box Testing

White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least
its purpose. It is purpose. It is used to test areas that cannot be reached from a black
box level.

Black Box Testing

Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most
other kinds of tests, must be written from a definitive source document, such as
specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black box
.you cannot “see” into it. The test provides inputs and responds to outputs without
considering how the software works.

Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
testing to be conducted as two distinct phases.

Test Strategy And Approach

Field testing will be performed manually and functional tests will be written in
detail.

Test Objectives

• All field entries must work properly.


• Pages must be activated from the identified link.
• The entry screen, messages and responses must not be delayed.

75
Features To Be Tested

• Verify that the entries are of the correct format


• No duplicate entries should be allowed
• All links should take the user to the correct page.
Integration Testing

Software integration testing is the incremental integration testing of two or


more integrated software components on a single platform to produce failures caused
by interface defects.

The task of the integration test is to check that components or software


applications, e.g. components in a software system or – one step up – software
applications at the company level – interact without error.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires
significant participation by the end user. It also ensures that the system meets the
functional requirements.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

76
IMPLEMENTATION

Implementation is the stage of the project when the theoretical design is


turned out into a working system. Thus it can be considered to be the most critical
stage in achieving a successful new system and in giving the user, confidence that the
new system will work and be effective.

The implementation stage involves careful planning, investigation of the


existing system and it’s constraints on implementation, designing of methods to
achieve changeover and evaluation of changeover methods.

77
9.CONCLUSION

A major advantage of Persuasive cued click point scheme is its large password
space over alphanumeric passwords. There is a growing interest for Graphical
passwords since they are better than Text based passwords, although the main
argument for graphical passwords is that people are better at memorizing graphical
passwords than text-based passwords. Online password guessing attacks on
password-only systems have been observed for decade’s .Present-day attackers
targeting such systems are empowered by having control of thousand to million node
botnets. In previous ATT-based login protocols, there exists a security-usability trade-
off with respect to the number of free failed login attempts (i.e., with no ATTs) versus
user login convenience (e.g., less ATTs and other requirements). In contrast, PGRP is
more restrictive against brute force and dictionary attacks while safely allowing a
large number of free failed attempts for legitimate users. PGRP is apparently more
effective in preventing password guessing attacks (without answering ATT
challenges), it also offers more convenient login experience, e.g., fewer ATT
challenges for legitimate users. PGRP appears suitable for organizations of both small
and large number of user accounts.

78
10. BIBLIOGRAPHY

Good Teachers are worth more than thousand books, we have them in Our
Department

REFERENCES MADE FROM:

1. Beginning ASP.NET 4: in C# and VB by Imar Spaanjaars.


2. Programming ASP.NET 3.5 by Jesse Liberty, Dan Maharry, Dan Hurwitz.
3. Beginning ASP.NET 3.5 in C# 2008: From Novice to Professional, Second
Edition by Matthew MacDonald.
SITES REFERRED:

 http://www.asp.net.com
 http://www.dotnetspider.com/
 http://www.dotnetspark.com

79

You might also like