Vous êtes sur la page 1sur 64

SINGLE SIGN ON

Banking-Data Profile

Banking-Data Profile

Introduction
Banking Data Profile helps to share a set of common functionalities for a particular Customer. In the
Present Scenario there is a rapid increase in the Online Banking for Transferring funds and checking
the account details. So there is a need to maintain an accessible profile which helps in Time
consumption.

Objective
The main objective of this project is to create an accessible profile with the functionalities registered
and wanted by the customer i.e..; a customer may have different accounts like Savings, NRI, and
Fixed. This can shared by the Banking authorities to process a Personal loan, Credit card based on
His/Her Profile. This also includes having a Single Sign On Mechanism for the Customer where he
doesn’t need to re-enter his User Name and Password again and again.

This also provides an automated usage report generation and alerts for finding any deviation from
regular usage pattern by the customer. The application uses cutting edge technologies and provides
information on usage reports and the unexpected usage.

Problems in Existing System

There is no automated system to generate and analyze Banking Data Profile as well as user behavior.
The existing systems follow manual process.

As there is lot of manual intervention, there is a possibility of increased delays and misinterpretation of
data. Any escalation to the concerned persons will be time consuming.

1
SINGLE SIGN ON

Proposed System

• Helps to maintain a common profile used by all Banking Authorities.

• Less time Consumption.

• GUI for Admin

Scope of the Project

The scope of the proposed project is

• Study and analysis of the information required

• Design of required pages, layout design, graphics design etc.

• Study of technical details of user data reports

• Implementation of user behavior reports

• Study and collection of the data required

• Design and implementation of database tables

• Implementation of core logic to find stock from optimum path

• Design and Implementation of various use cases

• Functional and performance testing of the server

• Study of various process stages and their interdependencies

• Listing of various validations.

• Verification and Validation of the complete project.

Modules

The project is divided into the following modules.

• Registration / Login Module

• Administration Module

2
SINGLE SIGN ON

• User transaction Module

• Single Sign On Module

• Detection and Alerting Module

• Database design

Software Requirements:

• Microsoft .Net

• Database (Oracle 9i or any standard database)

2 SYSTEM ANALYSIS:

2.5 Project Name System Feasibility Study:

A feasibility study is a preliminary study undertaken to determine and


document a project's viability or the discipline of planning, organizing, and
managing resources to bring about the successful completion of specific project
goals and objectives. The term is also used to describe the preliminary analysis of an
existing system to see if it is worth upgrading all or a part. Also known as feasibility
analysis. Depending on the results of the initial investigation the survey is now
expanded to a more detailed feasibility study. “FEASIBILITY STUDY” is a test of
system proposal according to its workability, impact of the organization, ability to
meet needs and effective use of the resources. The results of this study are used to
make a decision whether or not to proceed with the project. If it indeed leads to a
project being approved, it will — before the real work of the proposed project starts
and be used to ascertain the likelihood of the project's success. It is an analysis of
possible alternative solutions to a problem and a recommendation on the best
alternative.

3
SINGLE SIGN ON

It focuses on these major questions:

1. What are the user’s demonstrable needs and how does a candidate system Meet
them?

2. What resources are available for given candidate system?

3. What are the likely impacts of the candidate system on the organization?

4. Whether it is worth to solve the problem?

During feasibility analysis for this project, following primary areas of interest are to
be considered. Investigation and generating ideas about a new system does this.

Steps in feasibility analysis.

Eight steps involved in the feasibility analysis are:

• Form a project team and appoint a project leader.


• Prepare system flowcharts.
• Enumerate potential proposed system.
• Define and identify characteristics of proposed system.
• Determine and evaluate performance and cost effective of each proposed
system.
• Weight system performance and cost data.
• Select the best-proposed system.
• Prepare and report final project directive to management.
Technical feasibility:

4
SINGLE SIGN ON

A study of resource availability that may affect the ability to achieve an acceptable
system. This evaluation determines whether the technology needed for the
proposed system is available or not.

• Can the work for the project be done with current equipment existing software
technology & available personal?

• Can the system be upgraded if developed?

• If new technology is needed then what can be developed?

This is concerned with specifying equipment and software that will successfully
satisfy the user requirement. The technical needs of the system may include:

Front-end and back-end selection:

An important issue for the development of a project is the selection of


suitable front-end and back-end. When we decided to develop the project we went
through an extensive study to determine the most suitable platform that suits the
needs of the organization as well as helps in development of the project.

The aspects of our study included the following factors.

Front-end selection:

1. It must have a graphical user interface that assists employees that are not from

IT background.

2. Scalability and extensibility.

3. Flexibility.

4. Robustness.

5. According to the organization requirement and the culture.

5
SINGLE SIGN ON

6. Must provide excellent reporting features with good printing support.

7. Platform independent.

8. Easy to debug and maintain.

9. Event driven programming facility.

10. Front end must support some popular back end like Ms Access.

According to the above stated features we selected C#.NET ,ASP.NET as the front-
end for developing our project.

Back-end Selection:

1. Single user support.

2. Efficient data handling.

3. Provide inherent features for security.

4. Efficient data retrieval and maintenance.

6. Popularity.

7. Operating System compatible.

8. Easy to install.

9. Various drivers must be available.

10. Easy to implant with the Front-end.

According to above stated features we selected SQLSERVER as the backend.

The technical feasibility is frequently the most difficult area encountered at this
stage. It is essential that the process of analysis and definition be conducted in

6
SINGLE SIGN ON

parallel with an assessment to technical feasibility. It centers on the existing


computer system (hardware, software etc.) and to what extent it can support the
proposed system.

Economical feasibility:

Economic justification is generally the “Bottom Line” consideration for most systems.
Economic justification includes a broad range of concerns that includes cost benefit
analysis. In this we weight the cost and the benefits associated with the candidate
system and if it suits the basic purpose of the organization i.e. profit making, the
project is making to the analysis and design phase.

The financial and the economic questions during the preliminary investigation are
verified to estimate the following:

• The cost to conduct a full system investigation.

• The cost of hardware and software for the class of application being considered.

• The benefits in the form of reduced cost.

• The proposed system will give the minute information, as a result the performance
is improved which in turn may be expected to provide increased Profits.

Operational Feasibility:

It is mainly related to human organizations and political aspects. The points to be

7
SINGLE SIGN ON

Considered are:

• What changes will be brought with the system?

• What organization structures are disturbed?

The system is operationally feasible as it very easy for the End users to operate it. It
only needs basic information about Windows platform.

Schedule feasibility:

Time evaluation is the most important consideration in the development of project.


The time schedule required for the developed of this project is very important since
more development time effect machine time, cost and cause delay in the
development of other systems.

Registration

Description and Priority

In this module a Customer Should register With That of Bank in order to avail
services. Newly Customers can send request to Bank admin. The Admin validates his
account and sends an Online Password. Priority for this module can be set to 9.
Customer asks for an Online Transaction Password.
The Bank Admin will validate the details provided by Customer and should generate an
Online Transaction Password.
The Password remains for his account al

8
SINGLE SIGN ON

Functional Requirements

• To request a username and Password.


• To validate details provided by Customers (generally Account in Application).
• To Allow a Registered Customer to change details (only after login).
• Administrator of Bank service needs to validate and provide services required.
• To generate a user id and password for each customer.

Queries

• User Id exists or not?


• Number of registration per city/Province?

Alerts

• Same user id Exists.

9
SINGLE SIGN ON

• Client side scripting and validations.

Account Types

Description and Priority

In this module SSO Logic is implemented. A user who is already in session tries
to login into another application then his credentials are Redirected automatically by
the web server. As this is the core Module of the entire application Priority for this
module can be set to 9.
Stimulus/Response Sequences
customer is already in session in one application uses to login in another.
A token is generated and is used by the server to identify Customers.
Every time the user tries to login another application the credentials are validated by
the server using the Token generated earlier.
This Saves a lot of time in turn and helps customer not remember there credentials for
many applications.

Functional Requirements

• To check whether the Customer is already in session.


• To generate a Token and sent the same every then the User logins into
another application.
• Customer who is in session should be recognized by the Token.
• Single sign off should work as sson as he logouts in one application.

2.1 SSO

Description and Priority

10
SINGLE SIGN ON

In this module SSO Logic is implemented. A user who is already in session


tries to login into another application then his credentials are Redirected
automatically by the web server. As this is the core Module of the entire application
Priority for this module can be set to 9.
Stimulus/Response Sequences
Customer is already in session in one application uses to login in another.
A token is generated and is used by the server to identify Customers.
Every time the user tries to login another application the credentials are validated by
the server using the Token generated earlier.
This Saves a lot of time in turn and helps customer not remember there credentials for
many applications.

Functional Requirements

• To check whether the Customer is already in session.


• To generate a Token and sent the same every then the User logins into another
application.
• Customer who is in session should be recognized by the Token.
• Single sign off should work as sson as he logouts in one application.

Queries

• Generating a Token?
• Appending Token to every Request generated?
• Mapping the Token generated with that of Customer id.

Alerts

• Customer invalid Credentials

11
SINGLE SIGN ON

3 SOFTWARE AND HARDWARE SPECIFICATIONS

Software Requirements
 Language : C#.Net 2.0, ASP.Net 2.0, ADO.Net.
 Database : SQL Server 2000.
 Operating System : Windows NT/200/XP.
 RAM : 256 MB TO 512 MB.

Hardware specifications:

 Processor : Intel P-IV based system.


 Processor Speed : 250 MHZ to 833 MHZ.
 RAM : 128MB to 256 MB
 Hard Disk : 10 GB to 40 GB
 Keyboard : 104 keys
 Mouse : Scroll mouse
 Floppy drive : 1.44 MB

12
SINGLE SIGN ON

3. Literature Overview:

3.1 Asp.net framework:

Introduction to Web Forms (ASP.NET):

ASP.NET, the next version of ASP, is a programming framework used to create


enterprise-class Web Applications. These applications are accessible on a global
basis leading to efficient information management. The advantage ASP.NET offers is
more than just the next version of ASP.

Why ASP.NET?

Since 1995, Microsoft has been constantly working to shift it's focus from Windows-
based platforms to the Internet

. As a result, Microsoft introduced ASP (Active Server Pages) in November 1996. ASP
offered the efficiency of ISAPI applications along with a new level of simplicity that
made it easy to understand and use. However, ASP script

was an interpreted script and consisted unstructured code and was difficult to
debug and maintain. As the web consists of many different technologies, software
integration for Web development was complicated and required to understand many
different technologies. Also, as applications grew bigger in size and became more
complex, the number of lines of source code in ASP applications
increased dramatically and was hard to maintain. Therefore, an architecture was
needed that would allow development of Web applications in a structured and
consistent way.

13
SINGLE SIGN ON

The .NET Framework was introduced with a vision to create globally distributed
software with Internet functionality and interoperability. The .NET Framework
consists of many class libraries, includes multiple language support and a common
execution platform. It's a very flexible foundation on which many different types of
top class applications can be developed that do different things. Developing Internet
applications with the .NET Framework is very easy. ASP.NET is built into this
framework; we can create ASP.NET applications using any of the built-in languages.

Unlike ASP, ASP.NET uses the Common Language Runtime (CLR) provided by the
.NET Framework. This CLR manages execution of the code we write. ASP.NET code is
a compiled CLR code instead of interpreted code (ASP). CLR also allows objects
written in different languages to interact with each other. The CLR makes
development of Web applications simple.

Advantages Using ASP.NET:

• ASP.NET drastically reduces the amount of code required to build large


applications.
• ASP.NET makes development simpler and easier to maintain with an event-
driven, server-side programming model
• ASP.NET pages are easy to write and maintain because the source code and
HTML are together
• The source code is executed on the server. The pages have lots of power and
flexibility by this approach
• The source code is compiled the first time the page is requested. Execution is
fast as the Web Server compiles the page the first time it is requested. The server
saves the compiled version of the page for use next time the page is requested
• The HTML produced by the ASP.NET page is sent back to the browser. The
application source code you write is not sent and is not easily stolen
• ASP.NET makes for easy deployment. There is no need to register components
because the configuration information is built-in

14
SINGLE SIGN ON

• The Web server continuously monitors the pages, components and


applications running on it. If it noticies memory leaks, infinite loops, other illegal
software or activities, it seamlessly kills those activities and restarts itself
• ASP.NET validates information (validation controls) entered by the user
without writing a single line of code
• ASP.NET easily works with ADO .NET using data-binding and page formatting
features
• ASP.NET applications run fater and counters large volumes of users without
performance problems

Differences between ASP.NET and Client-Side


Technologies:

Client-side refers to the browser and the machine running the browser. Server-side
on the other hand refers to a Web server.

Client-Side Scripting:

JavaScript and VBScript and generally used for Client-side scripting. Client-side
scripting executes in the browser after the page is loaded. Using client-side scripting
you can add some cool features to your page. Both, HTML and the script
are together in the same file and the script is downloading as part of the page which
anyone can view. A client-side script runs only on a browser that supports scripting
and specifically the scripting language that is used. Since the script is in the same
file as the HTML and as it executes on the machine you use, the page may take
longer time to download.

Server-Side Scripting:

ASP.NET is purely server-side technology. ASP.NET code executes on the server


before it is sent to the browser. The code that is sent back to the browser is pure
HTML and not ASP.NET code. Like client-side scripting, ASP.NET code is similar in a

15
SINGLE SIGN ON

way that it allows you to write your code alongside HTML. Unlike client-side scripting,
ASP.NET code is executed on the server and not in the browser. The script that you
write alongside your HTML is not sent back to the browser and that prevents others
from stealing the code you developed.

ASP.NET Features:

ASP.NET is not just a simple upgrade or the latest version of ASP. ASP.NET combines
unprecedented developer productivity with performance, reliability, and
deployment. ASP.NET redesigns the whole process. It's still easy to grasp for new
comers but it provides many new ways of managing projects. Below are the features
of ASP.NET.

Easy Programming Model:

ASP.NET makes building real world Web applications dramatically easier. ASP.NET
server controls enable an HTML-like style of declarative programming that let you
build great pages with far less code than with classic ASP. Displaying data,
validating user input, and uploading files are all amazingly easy. Best of all, ASP.NET
pages work in all browsers including Netscape, Opera, AOL, and Internet Explorer.

Flexible Language Options:

ASP.NET lets you leverage your current programming language skills. Unlike classic
ASP, which supports only interpreted VBScript and JScript, ASP.NET now supports
more than 25 .NET languages (built-in support for VB.NET, C#, and JScript.NET),
giving you unprecedented flexibility in your choice of language.

Great Tool Support:

16
SINGLE SIGN ON

You can harness the full power of ASP.NET using any text editor, even Notepad. But
Visual Studio .NET adds the productivity of Visual Basic

-style development to the Web. Now you can visually design ASP.NET Web Forms
using familiar drag-drop-double-click techniques, and enjoy full-fledged code support
including statement completion and color-coding. VS.NET also provides integrated
support for debugging and deploying ASP.NET Web applications. The Enterprise
versions of Visual Studio .NET deliver life-cycle features to help organizations plan,
analyze, design, build, test, and coordinate teams that develop ASP.NET Web
applications. These include UML class modeling, database modeling (conceptual,
logical, and physical models), testing tools (functional, performance and scalability),
and enterprise frameworks and templates, all available within the integrated Visual
Studio .NET environment.

Rich Class Framework:

Application features that used to be hard to implement, or required a 3rd-party


component, can now be added in just a few lines of code using the .NET Framework.
The .NET Framework offers over 4500 classes that encapsulate rich functionality like
XML, data access, file upload, regular expressions, image generation, performance
monitoring and logging, transactions, message queuing, SMTP mail, and much more.
With Improved Performance and Scalability ASP.NET lets you use serve more users
with the same hardware.

Compiled execution:

ASP.NET is much faster than classic ASP, while preserving the "just hit save" update
model of ASP. However, no explicit compile step is required. ASP.NET will

17
SINGLE SIGN ON

automatically detect any changes, dynamically compile the files if needed, and store
the compiled results to reuse for subsequent requests.

Rich output caching:

ASP.NET output caching can dramatically improve the performance and scalability of
your application. When output caching is enabled on a page, ASP.NET executes the
page just once, and saves the result in memory in addition to sending it to the user.
When another user requests the same page, ASP.NET serves the cached result from
memory without re-executing the page. Output caching is configurable, and can be
used to cache individual regions or an entire page. Output caching can dramatically
improve the performance of data-driven pages by eliminating the need to query the
database on every request.

Web-Farm Session State:

ASP.NET session state lets you share session data user-specific state
values across all machines in your Web farm. Now a user can hit different servers in
the Web farm over multiple requests and still have full access to her session. And
since business components created with the .NET Framework are free-threaded, you
no longer need to worry about thread affinity.

Enhanced Reliability:

ASP.NET ensures that your application is always available to your users.

Memory Leak, Deadlock and Crash Protection:

18
SINGLE SIGN ON

ASP.NET automatically detects and recovers from errors like deadlocks and
memory leaks to ensure your application is always available to your users. For
example, say that your application has a small memory leak, and that after a week
the leak has tied up a significant percentage of your server's virtual
memory. ASP.NET will detect this condition, automatically start up another copy of
the ASP.NET worker process, and direct all new requests to the new process. Once
the old process has finished processing its pending requests, it is gracefully disposed
and the leaked memory is released. Automatically, without administrator
intervention or any interruption of service, ASP.NET has recovered from the error.

Easy Deployment:

ASP.NET takes the pain out of deploying server applications. "No touch"
application deployment. ASP.NET dramatically simplifies installation of your
application. With ASP.NET, you can deploy an entire application as easily as an HTML
page, just copy it to the server. No need to run regsvr32 to register any
components, and configuration settings are stored in an XML file within the
application.

Dynamic update of running application:

19
SINGLE SIGN ON

ASP.NET now lets you update compiled components without restarting the
web server. In the past with classic COM components, the developer would have to
restart the web server each time he deployed an update. With ASP.NET, you simply
copy the component over the existing DLL; ASP.NET will automatically detect the
change and start using the new code.

Easy Migration Path:

You don't have to migrate your existing applications to start using ASP.NET.
ASP.NET runs on IIS side-by-side with classic ASP on Windows 2000 and Windows XP
platforms. Your existing ASP applications continue to be processed by ASP.DLL, while
new ASP.NET pages are processed by the new ASP.NET engine. You can migrate
application by application, or single pages. And ASP.NET even lets you continue to
use your existing classic COM business components.

XML Web Services:

XML Web services allow applications to communicate and share data over
the Internet, regardless of operating system or programming language. ASP.NET
makes exposing and calling XML Web Services simple. Any class can be converted
into an XML Web Service with just a few lines of code, and can be called by any
SOAP client. Likewise, ASP.NET makes it incredibly easy to call XML Web Services
from your application. No knowledge of networking, XML, or SOAP is required.

20
SINGLE SIGN ON

Mobile Web Device Support:

ASP.NET Mobile Controls let you easily target cell phones, PDAs and over 80
mobile Web devices. You write your application just once, and the mobile controls
automatically generate WAP/WML, HTML, or iMode as required by the requesting
device.

3.2 C#.Net:

Microsoft Visual C# .NET is the comprehensive tool set for creating XML Web
services and Microsoft .NET connected applications for Microsoft Windows® and the
Web. This robust development package, which uses the component-oriented C#
development language, offers beginning and intermediate developers with C++ or
Java experience a modern language and environment for creating next-generation
software. Visual C# .NET delivers superior functionality for streamlining business
processes, including:

With Visual C# .NET, developers can build solutions for the broadest range of clients,
including Windows, the Web, and thin-client devices. With this elegant, modern
programming language, developers can leverage their existing C++ and Java skills
and knowledge to be successful in the Microsoft .NET development environment.

Advantages of C#.net:

Intuitive C++ base Language:

21
SINGLE SIGN ON

Use a language modeled on C++ syntax, immediately familiar to


C++ and Java developers, as well as intuitive new language constructs that greatly
simplify development tasks.

Interoperability:

Employ "unsafe" code to call native Windows APIs, use prebuilt COM
components, and leverage existing Microsoft ActiveX® controls to seamlessly
integrate existing applications and components.

Modem, component oriented Language:

Take advantage of inherent support for properties, indexers,


delegates, single and multidimensional arrays, advanced inheritance, attributes,
versioning, and XML comments.

A Fast growing Developer Community:

Learn from the rapidly growing community of C# developers and


leverage skills across multiple computing environments by using an interoperable,
standards-based language

3.3 SQL:

22
SINGLE SIGN ON

SqlDataprovider is an open specification designed to build on the


success of SQLDB by providing an open standard for accessing all kinds of data
throughout the enterprise. SQLDB is a core technology supporting universal data
access. Whereas ODBC was created to access relational databases, SQLDB is
designed for the relational and no relational information sources, such as mail
stores, text and graphical data for the Web, directory services, and IMS and VSAM
data stored in the mainframe. SQLDB components consist of data providers, which
expose data; data consumers, which use data; and service components, which
process and transport data (for example, query processors and cursor engines).
These components are designed to integrate smoothly to help SQLDB component
vendors quickly bring high-quality SQLDB components to market. SQLDB includes a
bridge to Sqldata to enable continued support for the broad range of ODBC relational
database drivers available today.

SQLDATA Providers:

There are two types of SQLDB applications: consumers and


providers. A consumer can be any application that uses or consumes SQLDB
interfaces. For example, a Microsoft Visual C++® application that uses SQLDB
interfaces to connect to a database server is an SQLDB consumer. The ADO.net
object model that uses SQLDB interfaces is an SQLDB consumer. Any application
that uses the ADO object model uses SQLDB interfaces indirectly through the
ADO.net objects. An SQLDB provider implements SQLDB interfaces; therefore, an
SQLDB provider allows consumers to access data in a uniform way through a known
set of documented interfaces. In a sense, an SQLDB provider is similar to an SQLDB
driver that provides a uniform mechanism for accessing relational data. SQLDB
providers not only provide a mechanism for relational data but also for nonrelational
types of data. Furthermore, SQLDB providers are built on top of Component Object
Model (COM) interfaces that allow more flexibility; whereas SQLDB drivers build on
top of a API specification.

23
SINGLE SIGN ON

Microsoft SQLDB SDK version 2.0 shipped two SQLDB providers: the
SQLDB Provider and sample text provider. The sample text provider is an example
that demonstrates the implementation detail of an SQLDB provider. The SQLDB
Provider is an SQLDB provider for ODBC drivers. This provider enables consumers to
use the existing SQLDB drivers without having to implement new OLEDB providers to
replace existing SQLDB drivers. With SQLDB version 2.0, providers for SQL Server,
Oracle data, and Microsoft Jet databases were added to the SDK. For more
information about OLEDB and OLEDB providers, see the OLEDB section of the
Microsoft Data Access

The SQLDB Provider:

The SQLDB Provider maps SQlClinet interfaces to SQLDB APIs. With


the Sqlclient Provider, SQLDB consumers can connect to a database server through
the existing SQLDB drivers in the following process: A consumer calls an SQLDB
interface on the SQLDB Provider. The SQLDB Provider invokes corresponding SQLDB
APIs and sends the requests to an ODBC driver.

Because the SQLDB Provider allows SQLDB consumers to use


existing SQLDB drivers, there may be some performance concern about the
additional layer of the SQLDB Provider on top of the existing SQLDB driver manager.
The design goal of the SQLDB Provider is to implement all the functionality of the
SQLDB driver manager; therefore, the SQLDB driver manager is not needed.
However, the SQLDB Provider still requires the SQLDB Driver Manager to support
connection pooling with SQLDB applications.

24
SINGLE SIGN ON

3.4 ADO.Net:

Most applications need data access at one point of time making it


a crucial component when working with applications. Data access is making the
application interact with a database, where all the data is stored. Different
applications have different requirements for database access. ASP.NET uses ADO
.NET (Active X Data Object) as it's data access and manipulation protocol which also
enables us to work with data on the Internet.

ADO.NET Data Architecture:

Data Access in ADO.NET relies on two components: Dataset


and Data Provider.

Dataset:

The dataset is a disconnected, in-memory representation of data. It


can be considered as a local copy of the relevant portions of the database. The
Dataset is persisted in memory and the data in it can be manipulated and updated
independent of the database. When the use of this Dataset is finished, changes can
be made back to the central database for updating. The data in Dataset can be
loaded from any valid data source like Microsoft SQL server database, an Oracle
database or from a Microsoft Access database.

25
SINGLE SIGN ON

Data Provider:

The Data Provider is responsible for providing and maintaining the


connection to the database. A Data Provider is a set of related components that
work together to provide data in an efficient and performance driven manner. The
.NET Framework currently comes with two DataProviders: the SQL Data Provider
which is designed only to work with Microsoft's SQL Server 7.0 or later and the
OleDb Data Provider which allows us to connect to other types of databases like
Access and Oracle. Each Data Provider consists of the following component classes:

• The Connection object which provides a connection to the database

• The Command object which is used to execute a command

• The Data Reader object which provides a forward-only, read only,


connected recordset

• The Data Adapter object which populates a disconnected Dataset with data
and performs update

Data access with ADO.NET can be summarized as follows:

A connection object establishes the connection for the application with


the database. The command object provides direct execution of the command to the
database. If the command returns more than a single value, the command object
returns a Data Reader to provide the data. Alternatively, the Data Adapter can be
used to fill the Dataset object. The database can be updated using the command

26
SINGLE SIGN ON

object.

5 DESIGN

27
SINGLE SIGN ON

Class Diagram:

Use Case Diagram:

28
SINGLE SIGN ON

29
SINGLE SIGN ON

Sequence Diagram:

30
SINGLE SIGN ON

Activity Diagram:

6 ARCHITECTURE

31
SINGLE SIGN ON

7 DATA FLOW DIAGRAMS

32
SINGLE SIGN ON

Banking-Data
Profile

HOME Registration

33
SINGLE SIGN ON

Banking-Data Profile

HOME Login

34
SINGLE SIGN ON

Bank-Data Profile:

35
SINGLE SIGN ON

8 DATABASE TABLES

Table Name: Registration

Field Name Type Technical Info Description


Name Varchar(50) Not Null Stores Name
Address Varchar(50) Not Null Stores Address
Mobile Number Varchar(50) Not Null Stores Mobile No
Username Varchar(50) Not Null, Unique Stores Username
Key.
Password Varchar(50) Not Null Stores Password

Table Name: Account Type Details

Field Name Type Technical Info Description


Account Number Bigint, primary Not Null Create Account
key. number.
Account Type Varchar(50) Not Null Stores Account
Type.
User Name Varchar(50) Not Null Stores User
Name According
to account type.

Table Name: Transaction Table:

36
SINGLE SIGN ON

Field Name Type Technical Info Description


Transactionid Int, primary key. Not Null For Unique.
Account number Bigint, foreign Not Null Store account
key number for
according to user
name.
Transaction name Varchar(50) Not Null It stores
transaction type.
Initial amount float Not Null It specifies initial
amount.
Transaction float Not Null It specifies
amount transaction
amount.
Balance float Not Null It specifies total
balance.

9 SOURCE CODE

37
SINGLE SIGN ON

Transfer.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Transfer : System.Web.UI.Page
{
int Balance;
string user;
int Account;
int traacc;
int Initialamount;
int Initialamountdest;
string transaction;
int Balancedest;
int ACC;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
user = Session["Username"].ToString();

//accounttype = Session["accounttype"].ToString();
transaction = Session["Transaction"].ToString();
Initialamount = Convert.ToInt32(Session["initialamount"]);
//traacc = Convert.ToInt32(Session["accountnumber"]);
}
}
protected void btnTransfer_Click(object sender, EventArgs e)
{
user = Session["Username"].ToString();
ACC = Convert.ToInt32(Session["accountnumber"]);
String s3 =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();
SqlConnection con4 = new SqlConnection(s3);

SqlCommand cmd4 = new SqlCommand();

cmd4.Connection = con4;
cmd4.CommandText = "select accountnumber from tblinsertaccounttype
where accountnumber!='" + txtEnterAccountNumber.Text + "' and
username='"+user+"'";
SqlDataReader dr5;
con4.Open();

38
SINGLE SIGN ON

dr5 = cmd4.ExecuteReader();

dr5.Read();
if (dr5.HasRows)
{
string account = dr5["accountnumber"].ToString();

Session["accountnumber"] = account;
Account = Convert.ToInt32(Session["accountnumber"]);
}
dr5.Close();
cmd4.CommandText = "select count(1) from tblinsertaccounttype where
accountnumber='" + txtEnterAccountNumber.Text + "'";

//con4.Open();
int i = Convert.ToInt32(cmd4.ExecuteScalar());
con4.Close();
if (i == 1)
{
//Response.Redirect("Dynamicpassword.aspx");
transaction = Session["Transaction"].ToString();
//ACC = Convert.ToInt32(Session["accountnumber"]);
String s =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();
SqlConnection con = new SqlConnection(s);

SqlCommand cmd1 = new SqlCommand();

cmd1.Connection = con;
//inserting
cmd1.Parameters.Add("@accountnumber",
SqlDbType.VarChar).Direction = ParameterDirection.Input;

//inserting values
cmd1.Parameters["@accountnumber"].Value = Account;

cmd1.CommandText = "select balance,initialamount from


tblinserttransactions where accountnumber='" + Account + "'";
SqlDataReader dr;
con.Open();
dr = cmd1.ExecuteReader();

dr.Read();
if (dr.HasRows)
{
string initialamount = dr["initialamount"].ToString();
string balance = dr["balance"].ToString();
Session["initialamount"] = initialamount;
Session["balance"] = balance;

}
dr.Close();
Initialamount = Convert.ToInt32(Session["initialamount"]);
Balance = Convert.ToInt32(Session["balance"]);
Initialamount = Balance;
//int totamount = Initialamount + Balance;

39
SINGLE SIGN ON

if (ACC == Convert.ToInt32(txtEnterAccountNumber.Text))
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Please Enter other account numbers');</Script>");
}
else if (Initialamount == 0)
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Not possible to transfer');</Script>");
}
else if (Balance >=
Convert.ToInt32(txtEnterAmounttoTransfer.Text))
{
Balance = Balance -
Convert.ToInt32(txtEnterAmounttoTransfer.Text);
//Initialamount = Balance;
String s1 =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();
SqlConnection con1 = new SqlConnection(s1);

SqlCommand cmd2 = new SqlCommand();

cmd2.Connection = con1;
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.CommandText = "sp_updatewithdraw";

cmd2.Parameters.Add("@accountnumber",
SqlDbType.VarChar).Direction = ParameterDirection.Input;
cmd2.Parameters.Add("@transactiontype",
SqlDbType.VarChar).Direction = ParameterDirection.Input;
cmd2.Parameters.Add("@initialamount",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd2.Parameters.Add("@transactionamount",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd2.Parameters.Add("@balance", SqlDbType.BigInt).Direction
= ParameterDirection.Input;
//cmd2.Parameters.Add("@transactionid",
SqlDbType.Int).Direction = ParameterDirection.Output;
//inserting values
cmd2.Parameters["@accountnumber"].Value = Account;
cmd2.Parameters["@transactiontype"].Value = transaction;
cmd2.Parameters["@initialamount"].Value = Initialamount;
cmd2.Parameters["@transactionamount"].Value =
txtEnterAmounttoTransfer.Text;
cmd2.Parameters["@balance"].Value = Balance;
con1.Open();
cmd2.ExecuteNonQuery();
con1.Close();
//Initialamount = Initialamount -
Convert.ToInt32(txtEnterWithDrawAmount.Text);
int pid =
Convert.ToInt32(cmd2.Parameters["@accountnumber"].Value);
if (pid == 0)
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Money transfer not possible');</Script>");

40
SINGLE SIGN ON

}
//transaction = Session["Transaction"].ToString();
//ACC = Convert.ToInt32(Session["accountnumber"]);
String s5 =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();
SqlConnection con5 = new SqlConnection(s5);

SqlCommand cmd5 = new SqlCommand();

cmd5.Connection = con5;
cmd5.CommandText = "select accountnumber from
tblinsertaccounttype where accountnumber='" + txtEnterAccountNumber.Text +
"'";
SqlDataReader dr1;
con5.Open();
dr1 = cmd5.ExecuteReader();

dr1.Read();
if (dr1.HasRows)
{
string accountnumber = dr1["accountnumber"].ToString();

Session["accountnumber"] = accountnumber;
traacc = Convert.ToInt32(Session["accountnumber"]);
}
dr1.Close();

//traacc = Convert.ToInt32(Session["accountnumber"]);
cmd5.CommandText = "select count(*) from
tblinserttransactions where accountnumber='" + txtEnterAccountNumber.Text +
"'";
//con5.Open();
int p = Convert.ToInt32(cmd5.ExecuteScalar());
con5.Close();
if (p == 0)
{

int destinitial = 0;
int bal =
Convert.ToInt32(txtEnterAmounttoTransfer.Text);
String s6 =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();
SqlConnection con6 = new SqlConnection(s6);
//procedure for deposite
SqlCommand cmd6 = new SqlCommand();
cmd6.Connection = con6;
//cmd6.CommandText = "select accountnumber from
tblinsertaccounttype where accountnumber='" + txtEnterAccountNumber.Text +
"'";
//SqlDataReader dr1;
//con6.Open();
//dr1 = cmd6.ExecuteReader();

//dr1.Read();

41
SINGLE SIGN ON

//if (dr1.HasRows)
//{
// string accountnumber =
dr1["accountnumber"].ToString();

// Session["accountnumber"] = accountnumber;

//}
//dr1.Close();

//traacc = Convert.ToInt32(Session["accountnumber"]);
cmd6.CommandType = CommandType.StoredProcedure;
cmd6.CommandText = "sp_insertdeposite";
//inserting
cmd6.Parameters.Add("@accountnumber",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd6.Parameters.Add("@transactiontype",
SqlDbType.VarChar).Direction = ParameterDirection.Input;
cmd6.Parameters.Add("@initialamount",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd6.Parameters.Add("@transactionamount",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd6.Parameters.Add("@balance",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd6.Parameters.Add("@transactionid",
SqlDbType.Int).Direction = ParameterDirection.Output;
//inserting values
cmd6.Parameters["@accountnumber"].Value = traacc;
cmd6.Parameters["@transactiontype"].Value =
transaction;
cmd6.Parameters["@initialamount"].Value = destinitial;
cmd6.Parameters["@transactionamount"].Value =
txtEnterAmounttoTransfer.Text;
cmd6.Parameters["@balance"].Value = bal;

con6.Open();
cmd6.ExecuteNonQuery();
con6.Close();
int did =
Convert.ToInt32(cmd6.Parameters["@transactionid"].Value);

if (did == 0)
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Money transfer failed');</Script>");
}
else
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Money transfer successfully completed');</Script>");
}
}
else
{
String s7 =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();

42
SINGLE SIGN ON

SqlConnection con7 = new SqlConnection(s7);

SqlCommand cmd7 = new SqlCommand();

cmd7.Connection = con7;

//inserting
cmd7.Parameters.Add("@accountnumber",
SqlDbType.VarChar).Direction = ParameterDirection.Input;

//inserting values
cmd7.Parameters["@accountnumber"].Value =
txtEnterAccountNumber.Text;

cmd7.CommandText = "select balance,initialamount from


tblinserttransactions where accountnumber='" + txtEnterAccountNumber.Text +
"'";
SqlDataReader dr2;
con7.Open();
dr2 = cmd7.ExecuteReader();

dr2.Read();
if (dr2.HasRows)
{
string initialamountdest =
dr2["initialamount"].ToString();
Session["initialamount"] = initialamountdest;
string balancedest = dr2["balance"].ToString();
Session["balance"] = balancedest;

}
dr2.Close();
String s8 =
ConfigurationManager.ConnectionStrings["singlesignonConnectionString"].ToSt
ring();
SqlConnection con8 = new SqlConnection(s8);

SqlCommand cmd8 = new SqlCommand();

cmd8.Connection = con8;
Initialamountdest =
Convert.ToInt32(Session["initialamount"]);
Balancedest = Convert.ToInt32(Session["balance"]);
Initialamountdest = Balancedest;

//traacc = Convert.ToInt32(Session["accountnumber"]);

cmd8.CommandType = CommandType.StoredProcedure;
cmd8.CommandText = "sp_updatewithdraw";

Balancedest = Balancedest +
Convert.ToInt32(txtEnterAmounttoTransfer.Text);
cmd8.Parameters.Add("@accountnumber",
SqlDbType.VarChar).Direction = ParameterDirection.Input;
cmd8.Parameters.Add("@transactiontype",
SqlDbType.VarChar).Direction = ParameterDirection.Input;

43
SINGLE SIGN ON

cmd8.Parameters.Add("@initialamount",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd8.Parameters.Add("@transactionamount",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
cmd8.Parameters.Add("@balance",
SqlDbType.BigInt).Direction = ParameterDirection.Input;
//cmd2.Parameters.Add("@transactionid",
SqlDbType.Int).Direction = ParameterDirection.Output;
//inserting values
cmd8.Parameters["@accountnumber"].Value = traacc;
cmd8.Parameters["@transactiontype"].Value =
transaction;
cmd8.Parameters["@initialamount"].Value =
Initialamountdest;
cmd8.Parameters["@transactionamount"].Value =
txtEnterAmounttoTransfer.Text;
cmd8.Parameters["@balance"].Value = Balancedest;
con8.Open();
cmd8.ExecuteNonQuery();
con8.Close();
//Initialamount = Initialamount -
Convert.ToInt32(txtEnterWithDrawAmount.Text);
int sid =
Convert.ToInt32(cmd8.Parameters["@accountnumber"].Value);
if (sid == 0)
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Money transfer not possible');</Script>");

}
else
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Money transfer successfully completed');</Script>");
}
}
}
else
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Money transfer not possible');</Script>");
}
}
else
{
Page.RegisterStartupScript(@"StartUp", @"<Script>
alert('Invalid account number');</Script>");
}

}
}

44
SINGLE SIGN ON

10 TESTING
The testing phase involves the testing of the developed system using various kinds of
data. An elaborated testing of data is prepared and a system is tested using the test
data. While testing, errors are noted and corrections remade, the corrections are also
noted for future use.
SYSTEM TESTING
Testing is a set of activities that can be planned in advance and conducted systematically. The
proposed system is tested in parallel with the software that consists of its own phases of
analysis, implementation, testing and maintenance. Following are the tests conducted on the
system.
UNIT TESTING
During the implementation of the system each module of the system was tested
separately to uncover errors with in its boundaries. User interface was used as a guide
in the process.
MODULE TESTING
A module is composed of various programs related to that module. Module testing is
done to check the module functionality and interaction between units within a module.
It checks the functionality of each program with relation to other programs within the
same module. It then tests the overall functionality of each module.
INTEGRATION TESTING
Integration testing is a systematic technique for constructing the program structure
while conducting tests to uncover errors associated with interfacing. The objective is
to take unit-tested module and build a program structure that has been dictated by
design.
ACCEPTANCE TESTING
The software has been tested with the realistic data given by the client and produced
fruitful results. The client satisfying all the requirements specified by them has also
developed the software within the time limitation specified. A demonstration has been
given to the client and the end-user giving all the operational features.

45
SINGLE SIGN ON

11 IMPLEMENTATION PHASE

The implementation is the final and important phase. It involves User training,
system testing and successful running of the developed system. The users test the
developed system when changes are made according to the needs. The testing phase
involves the testing of the developed system using various kinds of data. An elaborate
testing of data is prepared and system is tested using the tests data.

Implementation is the stage where theoretical design turned into a working system.
Implementation is planed carefully to propose system to avoid unanticipated problems.
Many preparations involved before and during the implementation of proposed
system. The system needed to be plugged in to the organization’s network then it
could be accessed from anywhere, after a user logins into the portal. The tasks that had
to be done to implement the system were to create the database tables in the
organization database domain. Then the administrator was granted his role so that the
system could be accessed.

The next phase in the implementation was to educate the system. A demonstration of
all the functions that can be carried out by the system was given to examination
department person, who will make extensive use of the system.

46
SINGLE SIGN ON

12 SCREENSHOTS

Home page:

47
SINGLE SIGN ON

ADMIN Login PAGE

48
SINGLE SIGN ON

Admin Home Page:

49
SINGLE SIGN ON

Admin All Registration Details Page:

50
SINGLE SIGN ON

All Accounts Page:

51
SINGLE SIGN ON

All Transaction List:

52
SINGLE SIGN ON

USER’S Login PAGE:

53
SINGLE SIGN ON

Registration Page:

54
SINGLE SIGN ON

Create ACCOUNTS:

55
SINGLE SIGN ON

Select Account:

56
SINGLE SIGN ON

TRANSACTION

57
SINGLE SIGN ON

Deposit:

58
SINGLE SIGN ON

WithDraw:

59
SINGLE SIGN ON

Balance Enquiry:

60
SINGLE SIGN ON

Transfer:

61
SINGLE SIGN ON

13 CONCLUSION

This is Application can be embedded into any Application where a User needs to enter his/her
credentials for multiple times.

This application uses to enter Credentials for only one time and the necessary Token for the

Application is generated and the Token is appended for the entire Transaction.

62
SINGLE SIGN ON

14 FUTURE SCOPE

The scope of the Single Sign-On Standard (code-named XSSO at the present), is to define
services in support of:

• the development of applications to provide a common, single end-user sign-on


interface for an enterprise, and

• the development of applications for the co-ordinated management of multiple user
• account management information bases maintained by an enterprise.

63
SINGLE SIGN ON

15 REFERENCES

10. Bibilography:

1) Professional C#.Net ,

2) Step By Step Asp.Net,

3) Introduction C#.Net, MSBN Publications.

4) Introduction ADO.Net, MSBN Publications.

5) Fundamentals of C#.Net,

6) Sofware Engineering , Pressman

64

Vous aimerez peut-être aussi