当前位置:文档之家› 单文档

单文档

单文档
单文档

MFC是一个编程框架

MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序。MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法。AppWizard可以用来生成初步的框架文件。资源编辑器用于帮助直观的设计用户接口。ClassWizard用来协助添加代码到框架文件,最后,通过类库实现了应用程序特定的逻辑。

MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的。而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理。框架或者由其本身处理事件,不依赖程序员的代码,或者调用程序员的代码来处理应用程序特定的事件。

1.S DI生成

1.步骤dxq2009

首先,打开VC++6.0开发环境,然后,选择”File”菜单中的“New”子菜单,在弹出的对话框中选择“MFC AppWizard(exe)”项并在“Progect name”编辑框中输入合适的工程名字Simple1,如图,它的意思是创建一个基于MFC的应用,接着进入正式的创建过程,MFC 应用程序的创建过程有6步(基于对话框)或者6步(SDI或者MDI),下面首先介绍SDI 应用的创建过程。

(1)第一步用于选择应用的结构以及语言等。如图1,首先确定应用是否需要Doc/View Architecture Support支持,因为不使用该结构的应用不支持从磁盘文件打开文档,也没有派生于类CWnd的窗口客户区。上面3个单选按钮用于确定创建的应用类型,

包括单文档,多文档,对话框,这里选择第一个。然后从资源列表框选择应用所使用的语言种类,单击“Next”。

图1

(2)第二步为用用程序选择4项数据库支持选项之一:如图2.如果选择了数据库支持,那么单击“Data Source”按钮,选择外部的数据库表项,一般按默认即可,单击“Next”。

图2

(3)第三步选择希望包含在应用中的复合文档支持项,同时判定是否启用标准的ActiveX 资源,以及是否为应用的菜单条添加额外的自动化命令等,如图4,一般安默认,单击“Next”

图4

(4)第四步用于选择应用所需的基本用户接口特征,以及所想使用的工具栏类型,如图5,如果想要修改应用所使用的文件名和扩展名,或者想要调整应用的用户接口和框架风格,就单击“Advanced”,然后修改,一般默认,单击“Next”。

图5

(5)第五步设置工程的风格,Explorer风格的应用类似于资源管理器,标准MFC风格带有文件视图区域,还要判定是否希望应用向导在源文件中生成注释,最后选择MFC库时动态链接还是静态链接,如图6单击“Next”。

图6

(6)第六步可以更改由应用向导提供的默认类型,基类,头文件和实现文件名,对于视图,还可以更改它的基类,如图7,一般默认,单击”Finish”,在弹出的工程信息对话框中点击“OK”即结束应用的创建过程。

图7

2.MFC工程的成员类及全局对象

应用向导可以自动地生成MFC应用的各个C++类,另外,还能自动的生成一个类APP的全局对象theApp,如图8下面做简要说明。

图8

1.应用类及全局对象(CCExcmpleApp)

应用类封装了Windows应用的初始化,运行以及终止的全过程。对于每一个基于框架的应用,它必须有一个且只能有一个派生于CWinApp的类对象。这个对象是全局对象,因此它在创建任何窗口前首先被构造。类CWinApp提供了几个关键的可重载的虚成员函数,他们是InitInstance,Run,ExitInstance以及OnIdle等。而且,在程序中可以随时调用全局函数AfxGetApp,以便获得CWinApp类对象的指针。

2.文档类(CCExcmpleDoc)

文档类实际上是一种数据结构,该类实现了对这种结构的封装以利于管理,通常,它不但包含应用中所需的数据,而且也包含了处理这些数据的方法,另外,文档类还可以为应用提供与其存储的数据相关的服务。

3.视图类(CCExcmpleView)

该类占有框架窗口的客户区,主要负责显示文档数据,也为文档对象和用户之间提供了用以交互的可视接口,另外,也完成了与文档打印相关的操作,通常,一般的绘制操作都是在该类中完成,因此有时也称视图类窗口为“绘制窗口”。

4.框架类(CMainFrame)

框架类表示应用程序的主框架窗口,其主要作用是响应标准的窗口消息,不过,它通常先将消息按照一定的次序传递给视图类以及文档类等其他命令处理类,另外,它还为视图类提供可视化的边框,同时也包括标题栏,一些标准的窗口组件等。

5.“关于”对话框类(CAboutDlg)

该类封装了用于显示软件版本,版权等相关信息的“关于”对话框,通常不需要对它进行任

何的编程。而只需要使用对话框资源编辑器对对话框模板进行简单的编辑即可。

3.源文件结构:

应用向导生成的应用程序具有很多原始的功能,例如:打开文件对话框等,而且还可以使用

类向导向某个类添加成员函数或者成员变量,而且类向导可以将添加的成员安排在何时得位

置。应用向导和类向导时怎么样实现这些自动功能呢?下面先浏览一下CCExcmpleView的

头文件:

// CExcmpleView.h : interface of the CCExcmpleView class

//

/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_CEXCMPLEVIEW_H__4FEB3544_9956_4E4C_93C9_35D40796D187__INCLUDED_) #define AFX_CEXCMPLEVIEW_H__4FEB3544_9956_4E4C_93C9_35D40796D187__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif// _MSC_VER > 1000

class CCExcmpleView : public CView

{

//Constructors

protected: //create from serialization only

CCExcmpleView();

DECLARE_DYNCREATE(CCExcmpleView)

//Attributes

public:

CCExcmpleDoc* GetDocument();

//Operations

public:

//Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CCExcmpleView)

public:

virtual void OnDraw(CDC* pDC); // overridden to draw this view

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

protected:

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);

virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

//}}AFX_VIRTUAL

// Implementation

public:

virtual ~CCExcmpleView();

#ifdef _DEBUG

virtual void AssertValid() const;

virtual void Dump(CDumpContext& dc) const;

#endif

protected:

// Generated message map functions

protected:

//{{AFX_MSG(CCExcmpleView)

// NOTE - the ClassWizard will add and remove member functions here.

// DO NOT EDIT what you see in these blocks of generated code !

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

#ifndef _DEBUG // debug version in CExcmpleView.cpp

inline CCExcmpleDoc* CCExcmpleView::GetDocument()

{ return (CCExcmpleDoc*)m_pDocument; }

#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCA TION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif

// !defined(AFX_CEXCMPLEVIEW_H__4FEB3544_9956_4E4C_93C9_35D40796D187__INCLUDED_)

该代码的作用是声明CCExcmpleView类,但是这个声明包含在一个“#iif…#define…#endif”

结构内,其目的时保证编译时此文件只被包含一次。下面介绍下头文件的组成部分。主要由

注释块,访问类型以及分界符。

1.注释块:用“//”引导的绿色部分

Constructors块:构造块,用于声明该类的C++构造函数,以及所需的各种初始化函数。Attributes块: 共性或属性快,用于包含对象的共性或属性,

Operations块:操作块,用于包含成员函数,可以通过对象调用这些函数,以使该对象执行

需要的任务或操作,

Overridables块:重载块,该块用于包含虚函数,当需要更改基类的行为时,可以在派生类

中重载这些函数。

Implementation块;实现块,是MFC类声明中最重要的部分。实现块包括所有的实现信息,

包括成员变量和成员函数。

2.访问类型。

Public ,protected,private

3.分界符:

从上面的代码可以看到如“//{{AFX_MSG(CCExcmpleView)”等的标识符,类向导使用几种特殊的分界符,用以区分向导生成的代码和用户输入的代码,这些格式化的分界符以注释的形式出现在代码中。如下所示:

“DECLARE_DYNCREA TE(CCExcmpleView)”是MFC为支持该类的动态创建而提供的宏。

4.应用程序类:MFC程序的启动过程:终止过程

1.全局对象的产生:

全局对象在名为Global的文件夹中,此时只有一个theApp,从C++的学习中可以了解到,当操作系统将程序加载并激活时,全局对象将首先获得配置,因此其构造函数将首先被执行,也即时说它比WinMain更早,下来看这个构造函数到底做了什么。

CCExcmpleApp theApp;

从程序中看到,它自己的构造函数只是完成用户自定义的变量的初始化,而运行环境的初始化是在它的基类中完成的,它的基类是CWinApp,它的构造函数定义如下:

{//参数时Windows使用的应用名称

if (lpszAppName != NULL)

m_pszAppName = _tcsdup(lpszAppName);

else

m_pszAppName = NULL;

// initialize CWinThread state初始化CWinThread state状态

AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();

AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;

ASSERT(AfxGetThread() == NULL);

pThreadState->m_pCurrentWinThread = this;

ASSERT(AfxGetThread() == this);

m_hThread = ::GetCurrentThread();

m_nThreadID = ::GetCurrentThreadId();

// initialize CWinApp state初始化CWinApp状态

ASSERT(afxCurrentWinApp == NULL);

// only one CWinApp object please存储theApp对象的指针

pModuleState->m_pCurrentWinApp = this;

ASSERT(AfxGetApp() == this);

// in non-running state until WinMain直到运行WinMain时,才是真正意义上的运行状态m_hInstance = NULL;

m_pszHelpFilePath = NULL;// 应用程序帮助文件的路径

m_pszProfileName = NULL;

m_pszRegistryKey = NULL;

m_pszExeName = NULL;

m_pRecentFileList = NULL;

m_pDocManager = NULL;

m_atomApp = m_atomSystemTopic = NULL;

m_lpCmdLine = NULL;

m_pCmdInfo = NULL;

// initialize wait cursor state

m_nWaitCursorCount = 0;

m_hcurWaitCursorRestore = NULL;

// initialize current printer state

m_hDevMode = NULL;

m_hDevNames = NULL;

m_nNumPreviewPages = 0; // not specified (defaults to 1)

// initialize DAO state

m_lpfnDaoTerm = NULL; // will be set if AfxDaoInit called

CWinApp的基类时CWinThread,CWinThread表示具有一个或多个线程的应用程序的主执行线程。

从上面代码可以看到,此函数主要时用来对线程和全局对象的初始化,同时保存theApp对象的指针,这样WinMain可以通过该指针调用它的成员函数,用以初始化和执行该应用.

2.应用程序入口-WinMain函数以及主框架创建

全局对象生成后,系统根据配置的CRT DLL(C-Runtime DLL,C运行时动态链接库)对WinMain函数进行调用,这些工作是由系统自动完成的,WinMain函数的定义如下:

_tWinMain中的_t是为了支持Unicode而定义的映射宏。

从代码里面看到,WinMain只是对另外一个函数AfxWinMain的简单调用,下面看AfxWinMain函数的实现过程。如下:

// App global initializations (rare) APP全局初始化dxq

if (pApp != NULL && !pApp->InitApplication())

goto InitFailure;

// Perform specific initializations

if (!pThread->InitInstance())

{

if (pThread->m_pMainWnd != NULL)

{

TRACE0("Warning: Destroying non-NULL m_pMainWnd\n");

pThread->m_pMainWnd->DestroyWindow();

}

nReturnCode = pThread->ExitInstance();

goto InitFailure;

}

nReturnCode = pThread->Run(); //dxq 进入Run状态

InitFailure:

#ifdef _DEBUG

// Check for missing AfxLockTempMap calls

if (AfxGetModuleThreadState()->m_nTempMapLock != 0)

{

TRACE1("Warning: Temp map lock count non-zero (%ld).\n",

AfxGetModuleThreadState()->m_nTempMapLock);

}

AfxLockTempMaps();

AfxUnlockTempMaps(-1);

#endif

AfxWinTerm(); //dxq终止应用运行并注销环境

return nReturnCode;

}

从代码看出,该函数主要调用了4个关键的函数:AfxWinInit(),InitApplication(),InitInstance(),Run(),

在此就不详细的介绍这几个函数,有兴趣的学生可以自己区看看。

AfxWinInit():-初始化MFC环境,

主要完成两个任务:其1:初始化全局对象的数据成员,其2,初始化线程指定的数据。

InitApplication():内部管理

InitInstance():应用的初始化

讲解:每当应用程序启动一个新的实例时,WinMain就调用InitInstance,从概念上讲,应用

的初始化过程可分为两个部分,程序第一次运行时,将进行应用级的初始化,当程序的一个副本或“实例”运行时,它将进行实例的初始化。此函数时虚函数,而且在CWinApp中是一个空函数,因此,在派生类中必须对此函数进行重载,应用向导会完成这个任务。下面是它的函数体:

BOOL CCExcmpleApp::InitInstance()

{

。。。。。。。

CSingleDocTemplate* pDocTemplate;

pDocTemplate = new CSingleDocTemplate(

IDR_MAINFRAME,

RUNTIME_CLASS(CCExcmpleDoc),

RUNTIME_CLASS(CMainFrame), // main SDI frame window

RUNTIME_CLASS(CCExcmpleView));

AddDocTemplate(pDocTemplate);

//dxq 解析命令行为标准的外壳命令

CCommandLineInfo cmdInfo;

ParseCommandLine(cmdInfo);

// 发送指定的命令

if (!ProcessShellCommand(cmdInfo))

return FALSE;

// 惟一的窗口已经被初始化,显示并更新

m_pMainWnd->ShowWindow(SW_SHOW);

//更新窗口发送WM_PAINT 消息

m_pMainWnd->UpdateWindow();

return TRUE;

}

主框架创建

此函数完成了MFC程序的大部分任务,如命令解析,框架,视图乃至文档的生成等,但是,这些过程对开发人员来说时不透明的,他们被MFC封装起来。

在应用程序开始执行时,由APP类辅助解析命令行,执行下面两行代码,接着执行ProcessShellCommand函数,,在这个函数里面调用了一系列封装的函数,主要完成创建一个主框架窗口,学员可以进入函数了解一下。再次略去。至此,主框架就创建好了,主框架的显示以及更新也在InitInstance函数中。在主框架产生之际会发出WM_CREATE消息,因此

return -1;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FL YBY | CBRS_SIZE_DYNAMIC) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failed to create toolbar\n");

return -1; // fail to create

}

if (!m_wndStatusBar.Create(this) ||

!m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failed to create status bar\n");

return -1; // fail to create

}

// TODO: Delete these three lines if you don't want the toolbar to

// be dockable

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);

return 0;

}

工具栏和状态栏分别由CToolBar和CStatusBar创建,两个对象属于主窗口。为了拦截WM_CREATE,首先需要在MessageMap中设定“映射项目”;

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

//{{AFX_MSG_MAP(CMainFrame)

// NOTE - the ClassWizard will add and remove mapping macros here.

// DO NOT EDIT what you see in these blocks of generated code !

ON_WM_CREATE()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

ON_WM_CREATE这个宏表示,只要WM_CREATE发生,OnCreate就会调用,就会创建工具栏和状态栏。

至此,程序就已经启动起来了,启动完毕后,程序进入挂起状态。

3.对象的创建

SDI应用通常包括几个重要的对象:文档模板,文档,框架窗口以及视图等。应用对象负责创建文档模板,而文档模板负责创建文档和框架窗口,框架窗口负责创建视图对象,其先后顺序为:文档模板->文档->框架窗口->视图。

对象创建完成之后,

4.程序的挂起:

Run():程序挂起。

Run()函数通过消息循环,检查消息队列中是否有需要处理的消息,如果有消息需要处理,则Run()就获取-翻译—分发它,如果没有任何消息需要处理,则Run调用OnIdle以便执行用户或框架需要完成的空闲时间处理如果没有任何消息,也没有任何可执行的空闲处理,则应用程序一直等待消息产生,应用也就被挂起。

下面时函数定义:

该函数没有做处理,主要调用基类的CWinThread::Run();

int CWinThread::Run()

{

ASSERT_V ALID(this);

// for tracking the idle time state

BOOL bIdle = TRUE;

LONG lIdleCount = 0;

// dxq 获取并分发消息直到收到一个WM_QUIT消息

for (;;)

{

// dxq 第一阶段:检查是否可以在空闲做一些工作

while (bIdle &&

!::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE)) {

// 当为空闲时调用OnIdle

if (!OnIdle(lIdleCount++))

bIdle = FALSE; // assume "no idle" state

}

// 第二阶段:当可以从队列中得到消息时提取消息

do

{

// 提取消息当为WM_QUIT时退出

if (!PumpMessage())

return ExitInstance();

// 提取正常消息,重置空闲状态

if (IsIdleMessage(&m_msgCur))

{

bIdle = TRUE;

lIdleCount = 0;

}

} while (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE));

}

ASSERT(FALSE); // not reachable

通过该函数的实现,可以理解消息循环的过程,和SCK不太一样,它是封装在MFC下的,实际上,它在PumpMessage函数的定义中,学员下去可以自己看看CWinThread中的PumpMessage函数。这个函数需哎哟首先从消息队列中提取消息,接着调用PreTranslateMessage虚函数过滤窗口消息。此处不详细讲解啦。

5.MFC的终止过程

应用处挂起状态时,如果不小心单击了“关闭”按钮,或者用键盘或鼠标从系菜单中选择关闭,这时,系统都会给窗口过程发送一个WM_SYSCOMMAND消息,窗口过程将这个消息传给默认的窗口过程,而默认的窗口过程会给窗口过程发送一个WM_CLOSE消息来响应,窗口过程再次将它传给默认的窗口过程,默认窗口过程调用DestroyWindow来响应这个WM_CLOSE消息,此后,DestroyWindow将导致Windows给窗口过程发送一个WM_DESTROY消息,此消息导致窗口过程再调用PostQuitMessage,将一个WM_QUIT消息置入消息队列中,以此来响应此消息,Run函数收到WM_QUIT消息后,会结束内部的消息循环,然后调用ExitInstance()函数,最后回到AfxWinMain(),执行AfxWinTerm,以此来终止程序的运行。

6.MFC程序流程小结

1. Windows将用户程序装入内存。

2. 构造全局对象theApp,在程序被装入时,所有全局对象都会立刻被创建。

3. Windows调用全局函数WinMain,它是类库的惟一实例

4. WinMain里面只调用函数AfxWinMain,

5. AfxWinMain执行AfxWininit,调用AfxinitThred,接着

6. AfxWinMain执行InitApplication,然后执行Initinstance,Initinstance是CWinApp的虚函数,在此改写。

7. InitInstance函数里面启动文档的装入以及主要框架和视图显示处理过程。

8 .在这里new 一个CMyFrameWnd ,CMyFrameWnd构造函数调用Create产生主窗口

9. InitInstance 执行ShowWindow,UpdateWindow,发出WM_PAINT

10. WinMain调用theApp的Run函数,它启动窗口消息和命令消息的传递处理过程。11:单击file/close,则发出WM_CLOSE

12:CMainFrame交默认处理

13:调用::DestroyWindow发出WM_DESTROY

14 :默认处理调用::postQuitMessage 发出WM_QUIT

15: CWinapp::Run收到WM_QUIT结束内部循环,调用ExitInsance(若CCExcmpleApp改写Exitinstance,则调用CCExcmpleApp::ExitInstance;

16. ExitInstance函数负责完成应用程序结束之前的清除工作。

17 . ExitInstance函数返回时,Run函数也返回了,MFC完成了一些清除工作,Windows 终止应用程序

18. 回到AfxWinMain,执行AfxWinTerm,程序结束!!

5.文档/视图类

文档视图类以及主框架之间的关系

文档视图较好的实现了数据显示和数据操作的分离,具体的说,用户对数据所做的任何改变的都是由文档类负责管理的,而视图通过调用此接口,以实现对数据的访问和更新。

框架窗口,文档,视图他们之间的关系如下图所示:

从上图可以看到,视图占据了框架窗口的客户区,框架窗口只是相当于视图的容器。这样,即使直接在框架窗口的客户区内执行绘制操作,在屏幕上也不会由任何的输出信息,输出被视图所覆盖。必须通过视图显示应用输出。

注意:文档至少应有一个相关的视图,相反,视图只能与一个文档向关联。CCExcmpleDoc类的基类为CDocument类,CDocument类为用户定义的文档类提供了基本的功能,框架通过使用CDocument提供的接口来操作文档,用户通过与文档相关联的CView 对象来与之交互。

CCExcmpleView类的基类为CView,CView类为用户定义的视图类CCExcmpleView提供了

基本功能,视图是数据的用户窗口,为用户提供了文档数据的可视显示,它在窗口中显示文档的内容,视图还给用户提供了一个与文档中的数据交互的界面,它把用户的输入转换为对文档中的数据的操作。每个文档都会与一个或多个视图相关联,甚至可以与多个不同的视图相关联。

视图类里面的几个重要函数:

解析:每个视图对象只有一个文档与其相关联,用户可以通过该视图对象的成员函数GetDocument获取与其关联的文档,然后,就可以在视图类中对文档类的公有成员函数及成员变量进行访问。

解析:在视图与文档关联后,在视图显示之前,或者当用户选择了“File|New”或“File|Open”时,框架就会调用此虚函数,它调用基类的OnInitialUpdate();函数。

它的功能主要包括:读取文档数据,然后对视图对象的数据成员或控制进行更新,以便反映文档的便哈,还可以使视图的部分客户区无效,就有WM_PAINT消息产生,从而触发对函

数OnDraw的调用,利用更新后的文档数据对窗口进行重绘。

OnDraw函数:此函数为虚函数,必须在派生类中重载此函数,它主要由框架来调用,以呈现文档数据,依据其参数不同,可以分别完成屏幕显示,打印以及打印预览等任务,在MFC 应用程序中,几乎所有的绘制操作都是在OnDraw中完成的(鼠标绘制除外)。

统一认证与单点登录系统-产品需求规格说明书

统一认证与单点登录系统产品需求规格说明书 北京邮电大学

版本历史

目录 0文档介绍 (5) 0.1 文档目的 (5) 0.2 文档范围 (5) 0.3 读者对象 (5) 0.4 参考文档 (5) 0.5 术语与缩写解释 (5) 1产品介绍 (7) 2产品面向的用户群体 (7) 3产品应当遵循的标准或规范 (7) 4产品范围 (7) 5产品中的角色 (7) 6产品的功能性需求 (8) 6.0 功能性需求分类 (8) 6.0.1产品形态 (8) 6.1 外部系统管理 (9) 6.1.1外部系统注册 (9) 6.1.2外部系统集成配置 (11) 6.2 用户管理 (11) 6.2.1用户管理控制台 (11) 6.2.2用户自助服务 (13) 6.2.3统一用户管理 (13) 6.3 组织结构管理 (14) 6.4 权限管理 (15) 6.4.1统一角色管理 (18) 6.5 单点登录 (18) 6.5.1基于Httpheader单点登录 (19) 6.5.2基于表单代填的方式单点登录 (20) 6.5.3基于CAS单点登录 (20) 6.5.4总结 (23) 7产品的非功能性需求 (24) 7.1.1性能需求 (24) 7.1.2接口需求 (24) 8附录B:需求确认 (25)

0文档介绍 0.1文档目的 此文档用于描述统一认证与单点登录系统的产品需求,用于指导设计与开发人员进行系统设计与实现。 0.2文档范围 本文档将对系统的所有功能性需求进行消息的描述,同时约定非功能性以及如何与第三方系统进行交互。 0.3读者对象 本文档主要面向一下读者: 1.系统设计人员 2.系统开发与测试人员 3.系统监管人员 4.产品甲方管理人员 0.4参考文档 《凯文斯信息技术有限公司单点登录及统一用户技术方案V1.0》 0.5术语与缩写解释

中国移动工单管理子系统操作手册

技术文件 技术文件名称:EOMS工单管理子系统操作手册技术文件编号: 版本:V2.0 文件质量等级:A级 共21 页 (包括封面) 拟制于周理 审核 会签 标准化 批准 南京中兴软创科技股份有限公司

目录 1参数配置 (4) 1.1 故障紧急程度配置 (4) 1.1.1 新增故障紧急程度类型 (5) 1.1.2 修改故障紧急程度类型 (5) 1.1.3 删除故障紧急程度类型 (6) 1.2 外部系统配置 (7) 1.2.1 外部系统配置 (8) 1.2.2 派单规则定制 (8) 2工单流转 (9) 2.1 派发工单 (10) 2.2 受理和回复工单 (12) 2.3 归档工单 (14) 3工单查询 (16) 3.1 工单查询 (16) 3.2 快速查询 (18) 4工单统计 (19) 5故障处理 (20)

工单管理 1参数配置 1.1 故障紧急程度配置 点击“工单管理\参数配置\故障紧急程度配置”进入故障紧急程度配置界面(如图1-1,1-2)。 图1-1 图1-2

1.1.1新增故障紧急程度类型 1.在故障类型和处理时限列表中,右键,点“新增故障紧急程度类型”(如图1-3)。 图1-3 2.输入紧急程度ID,紧急程度名称等(如图1-4)。 图1-4 3.点“确定”按钮,新增故障紧急程度类型完成。 1.1.2修改故障紧急程度类型 1.在故障类型和处理时限列表中,右键,点“修改故障紧急程度类型”(如图1-5)。

图1-5 2.修改紧急程度名称,紧急程度说明等(如图1-6)。 图1-6 3.点“确定”按钮,故障紧急程度类型修改完成。 1.1.3删除故障紧急程度类型 1.在故障紧急程度类型列表中,右键,点“删除故障紧急程度类型”(如图1-7)。

一个Web应用单点登录系统的设计和实现

第20卷哈尔滨师范大学自然科学学报 Vol.20,No.12004 第1期 NATURAL SCIENCES JOURNAL OF HARBIN NORMAL UNIVERSITY 一个Web 应用单点登录系统的设计和实现 陈重威 (上海市静安区业余大学) 摘要 作者在分析借鉴三种Web 单点登录产品和技术的基础上,设计并实现了一个Web 单点登录系统,该系统适用于企业内部Intranet 应用环境,可以跨多个In ternet 域,可以支持常见的几种操作系统和Web 应用服务器.本文介绍了此系统的设计思路和关键技术,并给出了部分关键代码. 关键词:Web;HTTP;单点登录;身份验证 收稿日期:2003-12-28 陈重威,(1948-),男,上海静安区业余大学计算机系副教授,主要研究方向:计算机网络、数据库 0 引言 经过多年的建设,我国企业中建立起来了一些基于Web 的应用系统,这些系统运行在多种操作系统和应用服务器上面,由不同的技术人员在不同的时期采用不同的技术建立,采用多种相互独立的用户管理、身份验证系统.在当前企业有限的经费预算条件下,如何使用户可以只登录企业信息系统一次就可以访问到企业中多种Web 应用一直是一种挑战.本文在分析三种具有代表性的Web 应用单点登录系统的基础上,针对中小型企业对Web 应用单点登录的要求、其Intranet 环境的特点,给出一个适应于中小型企业Intranet 内常见Web 应用的单点登录系统的设计框架及基于J2EE 的系统实现要点. 1 用户要求和现有产品 1 1 用户环境和要求 企业中基于Web 的应用系统种类繁多,有基于微软Internet Information Server 的运行在Windows 平台上的信息系统,有基于J2EE 应用服务器平台 的业务系统,有基于Lotus Domino 的办公自动化 系统,也有SAP 、ORAC LE 那样的ERP 系统或者财 务系统,这些系统各有各的用户数据库(关系型数据库、Domino 文档数据库、LDAP 服务器等).企业员工在不同应用系统中有不同的帐户!!!用户名和口令,他们需要牢记这些帐户.企业员工特别希望只登录一次就可以透明地访问其他各种应用系统,不再需要在各种应用系统的登录页面中多次输入不同的用户名和口令. 从用户的角度看,Web 应用单点登录系统的使用方法如下: 1 用户访问Web 单点登录系统,服务器返回登录页面,提示用户输入用户名和口令等认证信息; 2 用户登录系统,登录系统返回一个该用户有权访问的应用的列表; 3 自此以后,用户访问其他应用的时候,在用户看来,他不必进行身份验证就可以访问其他Web 应用了; 4 当用户退出一个应用系统,而没有退出?单点登录系统#,他仍然可以访问其他没有退出登录的应用系统.

单点登录系统(SSO)详细设计说明书

单点登录系统(SSO)详细设计说明书 1、引言 1.1编写目的 为了单点登录系统(SSO系统)的可行性,完整性,并能按照预期的设想实现该系统,特编写需求说明书。 同时,说明书也发挥与策划和设计人员更好地沟通的作用。 1.2背景 a.鉴于集团运营的多个独立网站(称为成员站点),每个网站都具有自己的身份验证机制,这样势必造成:生活中的一位用户,如果要以会员的身份访问网站,需要在每个网站上注册,并且通过身份验证后,才能以会员的身份访问网站;即使用户以同样的用户名与密码在每个网站上注册时,虽然可以在避免用户名与密码的忘记和混淆方面有一定的作用,但是用户在某一段时间访问多个成员站点或在成员站点间跳转时,还是需要用户登录后,才能以会员的身份访问网站。这样不仅给用户带来了不便,而且成员网站为登录付出了性能的代价; b.如果所有的成员网站,能够实现单点登录,不仅在用户体验方面有所提高,而且真正体现了集团多个网站的兄弟性。通过这种有机结合,能更好地体现公司大平台,大渠道的理念。同时,这样做也利于成员网站的相互促进与相互宣传。 正是出于上面的两点,单点登录系统的开发是必须的,是迫在眉睫的。1.3定义 单点登录系统提供所有成员网站的“单一登录”入口。本系统的实质是含有身份验证状态的变量, 在各个成员网站间共用。单点登录系统,包括认证服务器(称Passport服务器),成员网站服务器。 会员:用户通过Passport服务器注册成功后,就具有了会员身份。 单一登录:会员第一次访问某个成员网站时,需要提供用户名与密码,一旦通过Passport服务器的身份验证, 该会员在一定的时间内,访问任何成员网站都不需要再次登录。 Cookie验证票:含有身份验证状态的变量。由Passport服务器生成,票含有用户名,签发日期时间, 过期日期时间和用户其它数据。

工单管理系统需求分析

工程部工单系统 需 求 分 析 说 明

一、工单业务流程管理 1.用户信息管理 1)简介 该模块集中公司所有项目的使用用户资料,是所有工程任务处理的资料基础,也是工单生成的资料基础。本模块设计为按项目分类处理的信息管理模块。 2) 3)管理功能应该括添加、修改、删除、查询检索、统计筛选、报表查询检索功能:可以通过用户编号、公司名称、用户名称等条件查询,并可由此生成内容齐全的工程表单(维护、维修等等)。 统计功能:统计各项目有维修记录的小站、以及维修次数;统计维护完成情况、统计新开通或者搬迁等数据。 报表功能:可将上述查询、统计结果打印出来。 2.工单管理 1)简介 该模块是实现电子工单流管理的核心模块,以工程任务管理的流程为主线,各阶段逐步处理形成闭环的设计。 2)工单的开单模板管理 由于工单的形式和类型存在很大的变化性,所以我们在设计软件时要注意提供灵活的方法来保证用户不断变化的需求,保证用户能尽量少输入就可以填写好工单。 3)工单的派发方式管理 电子工单顾名思义就是要通过计算机来发送,派发的方式就用户的操作来分有自动派发和人工派发两种方式。自动派发方式的一般用于监控系统产生的故障信息生成的工单,可以通过连接到短信中心,利用短信相关的协议以手机短信的

方式来派发工单。人工派发的方式就是用户选定模板自己填写工单进行指派。方式基本上为手机短信或电子邮件的方式。 对自动转发的工单,用户也可以用选择过滤的办法进行人工干预。 4)工单的流转流程管理 一般来说工单流转从开单开始,有工单批准,工单签收,工单回复等一系列流程,工单的流转流程要根据用户的具体要求来确定,而且也具有变化性的特点。因此我们要能做到工单的流转流程可修改。 5)工单的呈现方式 工单地呈现方式也可以有多种,一般采用web方式,提供给用户方便的查询接口,用户可以按照时间,工单的状态,部门等条件进行查询。用户登陆系统后自动呈现和用户有关的待处理的工单信息。 6)工单的回单处理 工单指派后会有一系列的处理,例如工单批准,工单签收,以及工单完成后的回复处理。我们可以利用一个共同的web服务器,提供不同的页面来完成以上不同的队工单的处理。 7)工单状态纪录 8)工单回访管理 9)其它必要的功能 值班管理:系统提供值班管理,可以方便系统自动派发工单。还可以记录遗留问题等内容。 工单的统计分析功能:为了得到及时的完成任务,可以通过工单的执行时间情况的统计分析得到重要的信息。故障工单信息的历史纪录还可以提供维护的很重要的资料。 附工单业务流程图:

项目概要设计说明书

XX公司 概要设计说明书模板(2014年)

目录 第1 章......................... 简介1 1.1 编写目的 (1) 1.2 文档的控制 (1) 1.3 文档的审批 (1) 1.4 项目干系人 (2) 2.1 业务发展方向 (2) 2.2 当前组织结构 (2) 2.3 当前IT 环境 (3) 2.4 标准约定 (3) 第3 章................... 探索方案和方法3 3.1项目定义............... (3) 3.2系统上下文............. (3) 3.3主题模型............... (4) 3.4功能性需求列表......... (5) 第2 章.................. 业务和需要的理解

3.5 非功能性需求列表 ..................... 8 3.6 用例图 (10) 10 4.1 应用架构概况图 ..................... 10 4.2 架构决策 ........................ 11 4.3 架构部件(组件)模型图 .................. 13 4.4 系统运行部署图 ..................... 13 4.5 项目计划 .............. 错误! 4.6 项目的例外责任 ............ 错误! 4.7 项目依赖 .............. 错误! 4.8 风险和规避 .............. 错误! 4.9 问题和假设 .............. 错误! 4.10 假设条件 .............. 错误! 第5章 .................... 16 5.1 服务级别标准 ....................... 16 5.2 服务资源及规范 (16) 主要业务名词和术语定义 .................... 17 参考文献 . (17) 第4章 .................... 项目交付架构 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 运营支撑标准

单点登录设计原理

https://www.doczj.com/doc/6b11776819.html,/j2eeweiwei/article/details/2381332 单点登录设计原理 分类:权限控管Java 2008-05-04 13:12 244人阅读评论(0) 收藏举报 本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理、认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题。 随着信息技术和网络技术的迅猛发展,企业内部的应用系统越来越多。比如在媒体行业,常见的应用系统就有采编系统、排版系统、印刷系统、广告管理系统、财务系统、办公自动化系统、决策支持系统、客户关系管理系统和网站发布系统等。由于这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此用户必须记住每一个系统的用户名和密码,这给用户带来了不少麻烦。特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,统一用户认证、单点登录等概念应运而生,同时不断地被应用到企业应用系统中。 统一用户管理的基本原理 一般来说,每个应用系统都拥有独立的用户信息管理功能,用户信息的格式、命名与存储方式也多种多样。当用户需要使用多个应用系统时就会带来用户信息同步问题。用户信息同步会增加系统的复杂性,增加管理的成本。 例如,用户X需要同时使用A系统与B系统,就必须在A系统与B系统中都创建用户X,这样在A、B任一系统中用户X的信息更改后就必须同步至另一系统。如果用户X需要同时使用10个应用系统,用户信息在任何一个系统中做出更改后就必须同步至其他9个系统。用户同步时如果系统出现意外,还要保证数据的完整性,因而同步用户的程序可能会非常复杂。 统一存储(UUMS)、分布授权: 解决用户同步问题的根本办法是建立统一用户管理系统(UUMS)。UUMS统一存储所有应用系统的用户信息,应用系统对用户的相关操作全部通过UUMS完成,而授权等操作则由各应用系统完成,即统一存储、分布授权。

单点登录技术文档

单点登录技术文档 张昀* 2006.12 说明:本文档在我们最大努力范围之内确保其正确性、实效性和可观性,但并不代表所有的观点都是正确的,而仅代表个人看法。如发现不当之处,请多指教,谢谢! 另外,本文并不是给初学者看的。虽然我们尽可能把每个概念和操作步骤都说得比较明白,但是如果您对于Linux系统不是很熟的话,很多操作仍然可能存在困难。这种情况下我们建议您直接下载虚拟机安装试用,边实践边学习。 联系邮件:mypersonal1971@https://www.doczj.com/doc/6b11776819.html,。 1、单点登录概述 单点登录的英文名称为Single Sign-On,简写为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。IBM对SSO有一个形象的解释“单点登录、全网漫游”。 SSO将一个企业内部所有域中的用户登录和用户帐号管理集中到一起,SSO的好处显而易见: 1. 减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性 2. 实现安全的同时避免了处理和保存多套系统用户的认证信息 3. 减少了系统管理员增加、删除用户和修改用户权限的时间 4. 增加了安全性:系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限 对于内部有多种应用系统的企业来说,单点登录的效果是十分明显的。很多国际上的企业已经将单点登录作为系统设计的基本功能之一。 1.1单点登录产品 商业SSO软件 ●专门的SSO商业软件 ?主要有:Netgrity的Siteminder,已经被CA收购。Novell 公司的iChain。RSA公 司的ClearTrust等。 ●门户产品供应商自己的SSO产品, ?如:BEA的WLES,IBM 的Tivoli Access Manager,Sun 公司的identity Server, Oracle公司的OID等。

工单管理系统全流程解析

工单管理系统的工单流程大概如下图所示: 工单生成 工单管理系统具有多种服务请求提交方式。

工单的分类与优先级 易维帮助台设置有工单分类和服务目录。 ?工单分类是针对工单本身的分类,包括故障、申请、咨询、业务处理、维护作业、其它。 ?服务目录是针对客户服务的分类。任何工单(包括自动生成的工单),在创建时都需要进行分类和选择服务目录。

IT工程师或客服人员需对当前事件的影响范围作出考察,然后结合事件的紧急程度作出判断,赋予事件相应的优先级。 在易维帮助台系统中,SLA协议由紧急程度和影响程度组合而设定了5个优先等级(P1-P2-P3-P4-P5),每一个等级对应着预设的响应时间和处理时间要求。系统中已经设有预定的优先级矩阵,但是响应时间和处理时间可在系统中进行差异化设定。 对于大型服务组织,由于请求数量很大,不可能逐个排定事件的优先级。因此建议预先将5个优先等级制定成统一的标准(即将服务目录作出大体的划分,制定统一的响应时间和处理时间),然后根据报告事件的属性自动指派工单的优先级。

隔离区的工单 隔离区是工单视图之一,用于存放陌生客户提交的工单,隔离区工单只是暂时存放,在客户完成注册(Email验证)之后,该工单会自动从隔离区转移投递到指定的“客服小组”。注:该功能需要管理员配置开启。 工单的受理 IT工程师或客服人员确定是否属于自己能处理的范围之内,从而接收工单,在处理过程中,IT工程师或客服人员的操作权限如下图所示。

工单分派 当前处理人发现工单不在自己处理范畴之内或是需要协作处理时,可将工单转而分派给其他人员。一般流程为一线人员转给二线人员,二线人员转给三线人员或是其他团队,直至找到解决方案。 工单的流转 易维帮助台,工单在帮助台自由流转,工单流转流程,既符合ITIL事件管理规范,又贴切业务实际。工单流转的八大管理特征,如下图所示:

单点登录分析与设计

目录 1、概述 (3) 2、功能需求 (4) 2.1、身份认证标识管理 (4) 2.2、消息协议 (5) 2.3、日志管理 (5) 3、系统设计 (6) 3.1、网络结构 (6) 3.1、体系架构 (6) 3.2、功能模块 (8) 3.3、数据模型 (9) 3.4、系统接口 (10) 3.4.1、用户登录 (10) 3.4.2、切换认证 (13) 3.4.3、登记接口 (13) 3.4.4、签退 (14) 3.4.5、认证 (15) 4、系统实现 (17) 4.1、用户联系类 (17) 4.2、业务系统信息设置 (17) 4.3、访问业务系统 (18) 4.4、配置文件 (22) 4.5、核心代码 (23) 5、系统测试 (26) 5.1、测试概述 (26) 5.2、测试用例 (26) 5.2.1、用户登录 (26) 5.2.2、切换认证 (28) 5.2.3、签出 (28)

5.2.4、认证 (29) 5.2.5、坐席登录 (30) 5.3、测试结果 (30)

1、概述 单点登录系统在企业信息化平台中作为企业用户、个人用户、平台管理员用户登录注册系统,通过单点登录系统信息化平台中的这三类用户可以实现单点登录多平台访问。实现方式是这三类用户通过单点登录系统进行登录时产生一个登陆表示,通过这个平台唯一的登录标识可以从业务系统跳转到另外一个业务信息。 单点登录系统不存在业务数据维护功能,所以单点登录系统不提供页面功能。单点登录系统的所有功能通过多个WebService接口对外提供,当然这些接口请 求也会通过IP认证的方式进行安全认证。同时对于业务系统进行二次开发会提 供一个开发工具包,开发工具包的主要作用是实现XML字符串和类对象之间的相互转换。 统一身份认证分为业务方面和性能方面两类。 业务问题包括: 1.业务管理人员如何实现跨平台管理。 2.教师、学生实现跨平台查看自己的业务数据。 3.业务系统如何改造满足跨平台访问。 性能问题包括: 1.每一次登录需要进行记录,系统管理人员可以查询。 2.每一次平台之间的切换需要进行记录,系统管理人员可以查询。 3.如何保证网络安全。 4.每秒访问次数不少于80次(单个应用)。 5.应用可以实现堆砌部署,随时添加机器和应用。

基于CAS模式的单点登录系统设计与分析

Computer Science and Application 计算机科学与应用, 2019, 9(7), 1434-1440 Published Online July 2019 in Hans. https://www.doczj.com/doc/6b11776819.html,/journal/csa https://https://www.doczj.com/doc/6b11776819.html,/10.12677/csa.2019.97161 Design and Analysis of Single Sign on System Based on CAS Mode Xiaowei Xu, Jinlei Wang, Wenfei Jiang, Fengjuan Cui North China Sea Data and Information Service, SOA, Qingdao Shandong Received: Jul. 9th, 2019; accepted: Jul. 22nd, 2019; published: Jul. 29th, 2019 Abstract In order to solve the problem of the integration of the existing business application system of NCS, this paper makes a deep research on the principle of CAS integrated authentication, and designs a single sign on system based on CAS mode. Based on the actual situation of various software systems of NCS, this paper analyzes the problems faced by various systems to achieve single sign-on, propos-es different solutions to these problems, and provides technical route for the integration of business application systems of NCS, so as to realize the construction of single sign-on system of NCS. Keywords CAS Authentication, SSO, System Integration 基于CAS模式的单点登录系统设计与分析 徐晓玮,王金磊,姜雯斐,崔凤娟 国家海洋局北海信息中心,山东青岛 收稿日期:2019年7月9日;录用日期:2019年7月22日;发布日期:2019年7月29日 摘要 针对自然资源部北海局现有业务应用系统整合问题,对CAS集成认证原理进行深入研究,设计搭建了基于CAS模式的单点登录系统。结合北海局各类软件系统的实际情况,分析各类系统实现单点登录所面临的问题,针对这些问题提出不同的解决方案,为北海局业务应用系统的整合集成提供技术路线,以实现北海局单点登录系统的建设。

综合代维管理系统_通用工单流程操作手册_20160104

通用工单流程是无线、集客和传输共用的一个工单流程,用户根据业务需求走相应的工单流程。 1.2流程图 说明: 目前三专业流程环节相同。 (1)移动公司或代维工单任务派发人新建任务工单,选择代维人员、工单审核人进行派发。代维人员可以是任务工单执行人,也可以是代维管理人员(再转派)。 (2)移动公司审核人审核通过后直接派发给新建工单时指定的代维人员。 (3)代维执行人可以进行阶段回复、回复。 (4)代维执行人回复工单到移动人员进行审核,审核后进行归档,或者作废。

2流程操作说明 2.1各专业类型工单配置参数(省移动代维管理员) 用户登录代维系统,点击“工单管理”=》“通用工单管理”=》“工单参数配置表”进入页面,如下图: 支持新增、修改、删除。由省代维管理员维护。 表单说明: 字段类是描述

2.2新增工单(移动人员、代维人员) 2.2.1总体说明 用户登录代维系统,点击“工单管理”=》“通用工单管理”=》“新增工单”进入新增工单页面,如下图:

专业类型: 新增工单时首先选择‘专业类型’、‘任务范围’、‘任务类型’。根据选择的不同的专业类型站点的录入方式不同、选择站点的资源也不同、单价等都不同。 专业任务范围任务类型 集团客户简单开通(无施工)简单开通(需扩容)简单迁改 家庭宽带家宽初装二阶段(电力猫)家庭宽带家宽初装二阶段(热熔)家庭宽带家庭宽带拆机 家庭宽带 家宽初装二阶段(FTTH 按需覆盖) 家庭宽带 家宽初装二阶段(其他覆 盖) 家庭宽带IMS语音业务开通 家庭宽带“悦视听”业务开通 无线专业基站调整类 主设备调整 天线调整

随工类 基站验收 资产盘点 网络整治类 拆除蓄电池组 安装蓄电池组 拆除UPS 安装UPS 更换单体电池 拆除空调 空调装机 拆除天线(室外全向/定向 /智能) 安装天线(室外全向/定向 /智能) 拆除无源器件 安装无源器件 拆除直放站 安装直放站 拆除室内分布系统 拆除基站机房 计费数量:根据配置表有2种情况。一种是对每类型的工单固定计费数量、另一种是用户自己填写计费数量。用户自己填写计费数量应大于等于站点数量,如果用户先填写计费数量再录入站点,系统会做校验,如录入的站点数量大于计费数量则会提醒用户‘不能多于计费数量!’。 计费数量又分为:工单计费数量(新增时填写的计费数量)、完成计费数量(实际完成的任务数量)、归档计费数量(归档的计费数量,用于结算)。 是否计费:用于判断该工单是否计费,如果归档时填写的为‘否’,则该工单不计费。 单价:根据配置表默认单价。用户不可修改。 材料费:如果配置表定义的该类型的工单有材料费则可填写材料费,如无材料

基于门户单点登录系统的设计与实现

286二 ○一二年第十五期 华章 M a g n i f i c e n t W r i t i n g 王炳举,武 静,郑州大学西亚斯国际学院。 作者简介:基于门户单点登录系统的设计与实现 王炳举,武静 (郑州大学西亚斯国际学院,河南新郑451150) [摘要]本文根据单点登录的特点,实现了一种简单的单点登录方案,阐述了单点登录方案设计、登录流程、数据 库设计等技术细节,并对方案进行了评估分析。 [关键词]单点登录;凭证加密1、单点登录简介单点登录(Single Sign On ),简称为SSO ,是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要进行一次登录就可以访问所有建立了相互信任关系的应用系统。它的目标是方便用户,简化管理,提供统一的一站式服务。 使用单点登录主要有以下几个方面的好处:1.1统一管理、维护用户公共信息、提供多种接口标准,保证其他应用系统通过直接访问或同步复制的方式,从统一用户中心获取一致的用户信息。 1.2方便管理,减少管理员管理多个应用系统用户的压力,管理员只需要维护好统一用户中心的用户信息即可,其他应用系统可按一定的规则从统一用户中心同步用户信息。 1.3为终端用户提供便捷的一站式服务,用户只需要记住一个用户名及密码即可访问其有权限的所有应用系统,也可以减少因用户忘记密码而为管理员增加的工作量。 1.4具有良好的兼容性、可扩展性,一方面能兼容新开发的业务系统也能支撑现有的应用系统的访问;另一方面,系统中用户信息的属性可以扩充,以适应未来业务的变化。 1.5提高开发人员的效率。SSO 为开发人员提供了一个通用的身份验证框架。实际上,如果SSO 机制是独立的,那么开发人员就完全不需要为身份验证操心。他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。 2、单点登录系统设计 本文作者负责一所高校信息门户开发及维护,由于目前所用的门户系统没有单点登录服务,但又经常需要跟其他应用系统之间进行单点登录,因此设计此方案,大致的思路如下: 2.1设计思路。我校的信息门户使用活动目录进行用户管理,通过LDAP 协议进行统一身份验证,因此本方案也使用AD 作为统一用户中心,在门户上建立单点登录服务用于跟其他应用系统之间的单点登录。 用户首先登录门户,SSO 服务获取到用户信息后将用户有权访问的资源列表展现给用户,用户点击到某个应用的链接后自动登录到相应的应用程序;用户点击的链接不包含任何敏感信息,只有应用服务器ID ;SSO 服务会根据应用服务器ID 自动根据凭证生效时间、过期时间、用户ID 、Key (SSO 服务器与应用服务器之间约定的加密字符串)等信息自动生成凭证并将凭证提供给应用服务器验证,当应用服务器收到登录请求后会首先验证用户的合法性,然后到SSO 服务器验证凭证的合法性,验证成功后允许用户登录,且该过程必须要在既定的时间内完成。 该过程中每个应用与SSO 服务器之间约定共同的Key (密匙),根据密匙、用户ID 、用户IP 、凭证生成时间及失效时间根据一定的规则使用Hash 算法生成凭证,因此相同用户在不同时间登录某个应用时生成的凭证是不相同的。 服务器之间通过SSL 协议加密信息传输,用户通过使用https 的方式访问。 SSO 服务器根据单点登录类型判断应用系统中的用户信息与统一用户中心的用户信息是一致的还是需要进行用户映射,如果需要进行用户映射且用户是第一次登录,则将用户重定向到用户映射页面要求用户填写相关信息后进行登录。 SSO 服务器应具有的功能:(1)可以添加多个应用,添加应用时可添加应用服务器名称、 通信密匙、应用服务器单点登录地址等信息。 (2)可将所有应用以合适的方式展现给用户,并能获取用户登录ID ,并根据应用服务器ID 、通信密匙按照一定的加密算法生成凭证信息及凭证信息的Hash 值。 (3)提供用于验证应用服务期凭证的WebService ,该Web-Service 应检查凭证的时效性(是否为过期凭证)及正确性,防止凭证被篡改,同时将校验的结果反馈给应用服务器。 应用服务器功能: (4)应用服务期只需要校验SSO 服务器提供的用户ID 及凭证的有效性即可。 2.2单点登录流程。 2.2.1用户首先登录门户,并打开单点登录(SSO )应用列表,点击相应的应用系统链接。 2.2.2SSO 服务器根据APPID 找到对应的应用、与应用服务器约定的key ,在SSO 服务器上生成一条包含APPID 、用户ID 、用户IP 、凭证生效时间、凭证失效时间、凭证信息的Hash 值等的记录。凭证信息根据APPID 、用户ID 、用户IP 、凭证生效时间、凭证失效时间及与应用服务期之间约定的key 按照一定的规则生成。 2.2.3SSO 服务器根据步骤2中的信息采用Hash 加密算法生成的凭证信息,并将用户ID 及凭证传递到应用服务器。 2.2.4应用服务器根据SSO 服务器传递过来的用户ID ,校验该用户的有效性,同时调用SSO 服务器提供的WebService 校验凭证的有效性及时效性,如果校验成功,则允许用户登录。 2.2.5如果用户登录的应用系统与统一用户中心使用不同的用户信息,则用户第一次登录时需要首先进行用户映射,第二次登录时执行步骤1到步骤4。 2.2.6用户登录其他应用系统时重新执行以上过程。 从以上流程可以看出,本文设计的单点登录方案跟其他单点登录方案有所不同,用户无论登录那个应用系统均需由SSO 服务器代替用户自动登录。 2.3具体数据表设计。首先我们需要一张表用于存放各种应用服务器的相关信息,包含应用服务器名称、应用服务器单点登录地址等信息,数据表字段及设计说明如下: 除了上面数据表之外我们还需要一张表用于存放用户登录时自动生成的信息,同时这张表中的数据也作为应用服务器向SSO 服务器验证时用。 如果统一用户中心与应用系统使用两套不(下转第288页)

单点登录平台管理软件_系统设计文档

单点登录平台管理软件 设计方案

目录 一、项目概述 (1) 二、项目目标 (1) 三、必要性分析 (1) 四、定义 (2) 五、项目需求 (3) 1.概述 (3) 2.功能需求分析 (4) 2.1.系统实现结构图 (5) 2.2.系统实现层次结构 (5) 2.3.功能需求 (6) 2.4.流程逻辑 (11) 3.数据库设计 (13) 4.服务器与成员接口规 (15)

一、项目概述 单点登录(Single Sign On),简称为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。IBM对SSO有一个形象的解释“单点登录、全网漫游”它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。IBM对SSO有一个形象的解释“单点登录、全网漫游”。 SSO将一个企业部所有域中的用户登录和用户管理集中到一起,SSO的好处显而易见。 对于部有多种应用系统的企业来说,单点登录的效果是十分明显的。很多国际上的企业已经将单点登录作为系统设计的基本功能之一。 二、项目目标 通过建设与实现SSO,可以达到以下目标: 减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性。 实现安全的同时避免了处理和保存多套系统用户的认证信息。 减少了系统管理员增加、删除用户和修改用户权限的时间。 增加了安全性:系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限。 三、必要性分析

鉴于单位运营的多个独立(称为成员站点),每个都具有自己的身份验证机制,这样势必造成:生活中的一位用户,如果要以会员的身份访问,需要在每个上注册,并且通过身份验证后,才能以会员的身份访问;即使用户以同样的用户名与密码在每个上注册时,虽然可以在避免用户名与密码的忘记和混淆方面有一定的作用,但是用户在某一段时间访问多个成员站点或在成员站点间跳转时,还是需要用户登录后,才能以会员的身份访问。这样不仅给用户带来了不便,而且成员为登录付出了性能的代价; 如果所有的成员,能够实现单点登录,不仅在用户体验方面有所提高,而且真正体现了平台的一体性。通过这种有机结合,能更好地体现公司大平台,大渠道的理念。同时,这样做也利于成员的相互促进与相互宣传。 正是出于上面的两点,单点登录系统的开发是必须的,是迫在眉睫的。 四、定义 单点登录系统提供所有成员的“单一登录”入口。本系统的实质是含有身份验证状态的变量, 在各个成员间共用。单点登录系统,包括认证服务器(称Passport 服务器),成员服务器。 会员:用户通过Passport服务器注册成功后,就具有了会员身份。 单一登录:会员第一次访问某个成员时,需要提供用户名与密码,一旦通过Passport服务器的身份验证,该会员在一定的时间,访问任

单点登陆(SSO)组件的设计与实现一

单点登陆(SSO)组件的设计与实现一 详细说明单点登录组件(SSO)的设计思想和实现方法,是日后该组件维护和扩展工作的基本依据文档。预期读者是要实现单点登录(SSO)系统的系统设计人员,系统开发人员,系统维护人员。 1.2 背景 说明: 待开发软件系统的名称;jillzhang的SSO组件 本项目的任务提出者为jillzhang、开发者为jillzhang、用户为有用户整合需求平台的开发和设计人员。 1.3 定义 SSO是Single Sign On的缩写,该技术主要用于用户整合。 认证中心:认证中心是用户注册,成员站点管理,用户登录,验证登录信息,保存登录信息,颁发登录认证的中心站点。 成员站点: 成员站点是遵从认证中心规则,享用认证中心统一用户的站点。 注册站点:如果想成为成员站点,必须先在认证中心进行站点登记,登记后,认证中心会保存注册站点的配置信息,并将该配置信息发给注册站点。注册站点也需保存这些配置信息,供日后与认证中心交互时候使用。 联盟用户:指在认证中心注册的用户,这些用户能被所有的成员站点所共享。 登录请求:指成员站点向认证中心发出的带有站点配置的用户登录请求信息。 登出请求:只用户向认证中心发出的要求退出登录的请求。 登录请求验证:指的是认证中心根据存储的站点信息对成员站点的登录请求信息进行来源和真实性的验证。

登出请求验证:指认证中心在接受来自成员站点的登出请求的时候,对请求的来源和真实性进行的验证 登录答复:指认证中心对经过验证的登录请求作出的答复信息。该答复包含用户的登录信息。 在线联盟用户数:指的是在成员站点中,在线的联盟用户数量。 在线联盟用户列表:指的是在成员站点中,在线的联盟用户的列表信息。 登录站点清单:是由认证中心维护的用户的登录站点信息,当用户注销的时候,会遍历此清单,逐个登出。 1.4 参考资料 本组件的设计和实现参考了下面的系统和书籍 https://www.doczj.com/doc/6b11776819.html,/David-weihw/archive/2007/01/25/630621.html 《数字签名技术原理及技术》 2 程序系统的结构 本组件包括下面几个应用接口,分别如下: ISite:ISite是用于描述和操作成员站点的接口 IUser : IUser是用于描述和操作联盟用户的接口 IServer:IServer是认证中心处理登录请求和登出请求的接口 IClient: IClient是成员站点发出登录请求和处理登录答复的接口 IUserLoginList:IUserLoginList是描述和操作用户登录站点清单的接口 ILoginRequest:是记录和操作成员站点发送登录请求的接口。 ILoginRequestContainer:用于保存和维护登录请求列表的接口

SSO单点登录概要设计说明书

SSO单点登录概要设计说明书 V1.0

文件更改摘要:

目录 1.引言 (3) 1.1编写目的 (3) 1.1.1描述 (3) 1.1.2存在的问题 (3) 1.1.3解决技术 (3) 1.2背景 (3) 1.3术语 (3) 1.4预期读者与阅读建议 (3) 1.5CAS运行原理 (3) 2.总体设计 (4) 2.1设计目标 (4) 2.2运行环境 (5) 2.3网络结构 (5) 2.4总体设计思路和处理流程 (5) 2.5对象关系图 (5) 2.6系统约定 (5) 2.7模块结构设计 (5) 2.8尚未解决的问题 (7) 3.接口设计(暂略) (7) 3.1用户接口(暂略) (7) 3.2外部接口(暂略) (7) 3.3内部接口(暂略) (7) 4.界面总体设计 (7)

1. 引言 1.1 编写目的 1.1.1 描述 随着信息化进一步发展和企业的业务运营需要,企业内部的应用系统越来越多。这些系统往往有着独立的用户认证模块和机制,用户不得不记住每一个系统的登录帐号和密码,在使用不同的系统时,必须重复登录,给用户的使用造成诸多不便。针对这种情况,单点登录(Single Sign On)[1]模型应运而生,同时不断地应用到企业的业务系统中。在单点登录系统中,用户只需在登录时提供一次用户认证信息,通过认证以后,在访问企业门户中的各个子系统时无需再重复登录。 1.1.2 存在的问题 在单点登录系统的实现过程中,往往会碰到如下问题:1) 企业现有的各个应用系统间相互独立或者通信状况是混乱的,对外接口也不同,这给应用系统的集成带来了极大困难。 2) 同一个用户,拥有多个应用系统的访问凭证,使用户信息难以统一管理。3) Cookie不 能跨域的限制也使实现各个应用系统之间Cookie共享成为一个难题。 1.1.3 解决技术 本文介绍的基于CAS协议,采用用户映射机制设计的单点登录方案,能很好的解决这些问题。 1.2 背景 a、软件系统的名称:SSO单点登录系统; b、对企业已有的或要建设的系统进行单点登录整合。 1.3 术语 本系统:SSO单点登录系统; 1.4 预期读者与阅读建议 1.5 CAS运行原理 我们以A公司的员工日志管理系统为例: a.传统的用户认证流程

单点登录技术文档

济南时代智囊科技有限公司单点登录技术文档
单点登录技术文档
何伟民* 2010.6
1、 单点登录概述 、
单点登录的英文名称为 Single Sign-On,简写为 SSO,它是一个用户认证的过程,允许 用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输 入密码。IBM 对 SSO 有一个形象的解释“单点登录、全网漫游” 。 SSO 将一个企业内部所有域中的用户登录和用户帐号管理集中到一起,SSO 的好处显 而易见: 1. 减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性 2. 实现安全的同时避免了处理和保存多套系统用户的认证信息 3. 减少了系统管理员增加、删除用户和修改用户权限的时间 4. 增加了安全性:系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用 户来取消该用户对所有系统资源的访问权限 对于内部有多种应用系统的企业来说, 单点登录的效果是十分明显的。 很多国际上的企 业已经将单点登录作为系统设计的基本功能之一。
1.1 单点登录产品
商业 SSO 软件 专门的 SSO 商业软件 主要有:Netgrity 的 Siteminder,已经被 CA 收购。Novell 公司的 iChain。RSA 公 司的 ClearTrust 等。 门户产品供应商自己的 SSO 产品, 如:BEA 的 WLES,IBM 的 Tivoli Access Manager,Sun 公司的 identity Server, Oracle 公司的 OID 等。 上述商业软件一般适用于客户对 SSO 的需求很高,并且企业内部采用 Domino、SAP、 Sieble 等系统比较多的情况下。单点登录产品通常需要在应用软件中增加代理模块,而商业 SSO 产品主要针对大型软件制作了代码模块。 因此,商业 SSO 软件除了价格问题外,另一个重要问题就是对客户自己的应用系统支 持未必十分完善。
第1页

相关主题
文本预览
相关文档 最新文档