您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 第三方portal与NC集成方案
第一章单点登录方案(V5)1.概述登录方案示意图如下:2.过程说明1.当客户端用户希望进入NC系统时,首先向外部的认证系统提交请求。2.由外部认证系统向nc服务器注册客户端的登录信息,这些信息是nc系统所必需的信息。可以通过一个随机的键值key来索引登录信息。3.客户端将通过该键值来进入nc系统。即客户端将向nc应用服务器提交其键值。nc服务器将利用该键值从注册中心中获取登录信息(同时注销注册信息)。然后利用这些登录信息登录到NC系统。4.超时处理:注册的登录信息有其生命期,超过生命期的注册信息将会被清除。客户端只能在超时以前登录nc才有效,否则不能进入nc系统。超时的值在配置文件中进行配置外部身份认证系统客户端NC应用服务器注册中心1.登录请求2.向nc服务器注册登录信息3,利用注册信息,客户端进入NC系统超时处理3.URL格式1.注册用的URL外部系统服务器利用此url向nc服务器注册登录信息。该URL的基本格式为:=111111&usercode=1注:usercode和key是必须的。key值为注册登录信息的键值,必须保证唯一。在这个url后面还可以提供一些附加参数accountcode用于指定登录的账套pkcorp用于指定登录的公司workdate用于提供登录日期,默认为NC服务器当前日期language用于提供登录的语种,默认为简体中文。height客户端分辨率的高度值width客户端分辨率的宽度值2.登录用的URL外部系统服务器注册完毕后,返回客户端该url,使客户端重定向到该url,实现登录NC=111111注:其中key的取值和注册时的值一致4.配置文件文件ierp\bin\exterior.xml用于配置在单点登录中能够注册登录信息的主机ip和注册信息的超时值。这些配置都是出于对安全的考虑,因为只有在该文件中配置的主机才能向nc服务器注册登录信息。exterior.xml的内容为:?xmlversion=1.0encoding='gb2312'?rootdocType=remoteipconfigremoteip192.168.0.1/remoteip用于指定可以注册的外部主机ipremoteip10.5.2.*/remoteip可以使用*指定某个网段remoteip127.0.0.1/remoteiptimeout20/timeout用于指定注册信息的生命期,单位为妙/root第二章portal与NC集成1、方案简介:修改部分NC系统管理代码让NC整个成为一个独立的组件可以提供给Portal系统集成。并根据业务需要提供相应的接口,由Portal系统进行调用,打开对应节点继续ERP系统中的操作。系统基本结构如下图所示:2、实现方式:将NC包装成JavaScript对象NCApplet保存于NCApplet.js文件中,对外提供登录、打开业务节点等操作方法。目前提供的基本方法为:1.对象初始化。在对象初始化时,需要提供NC服务器的IP地址、端口信息。为了进行NCApplet初始化,需要在Portal系统中嵌入以下代码:在HEAD标签中引入NCApplet.jsscriptlanguage=JavaScriptsrc=NCApplet.js/script在BODY标签中实例化NCApplet对象scriptlanguage=JavaScriptmyNC=newNCApplet(ncIP,ncPort);/script其中:myNC为对象实例,用户可以根据自己的需要命名。ncIP为NC应用服务器地址。ncPort为NC服务器的访问端口。2.登录。Portal用友ERP系统JavaScriptNCJavaScript对象在需要使用NCApplet的地方进行登录操作,登录函数为:result=myNC.login(accountName,corpCode,userCode,userPassword,bussiDate)其中:myNC:前面实例化的NCApplet对象accountCode:帐套名称corpCode:公司编码userCode:用户编码userPassword:用户密码bussiDate:业务日期result:NCApplet返回值,如果成功返回true,否则返回false以简体中文作为默认语言登录用户名和用户密码为必输项,用户密码传递采用密文方式。刘俊松介绍目前ERP系统和Portal系统已经实现用户编码、口令统一,NC控件可以直接对该密文口令进行验证。目前系统中只有一个账套,如果Portal系统不传递账套信息,则默认为该账套。如果登录日期不传递,则默认为当前的操作系统日期。如果登录单位不指定,则默认登录用户所属单位。3.打开业务节点。登录成功之后,可以进行节点打开操作result=myNC.openNode(nodeCode)其中:myNC:前面实例化的NCApplet对象nodeCode:节点编号。result:NCApplet返回值,如果成功返回true,否则返回false注:必须登录成功之后才允许进行打开节点操作。NC控件验证当前用户是否具有打开该节点的权限。4.设置NC是否可见myNC.setVisible(visible)其中:myNC:前面实例化的NCApplet对象visible:确认是否显示NC的参数,取值范围true、false.5.设置是否显示待办事务myNC.setBussinessVisible(visible)其中:myNC:前面实例化的NCApplet对象visible:是否显示待办事务,取值范围true、false.用户选中待处理事务打开后,弹出相应的处理界面。6.读取待办事务信息business=myNC.readBussiness()其中:myNC:前面实例化的NCApplet对象business:返回结果,以数组形式返回。7.执行待办事务result=myNC.executeBussiness(bussiness)其中:myNC:前面实例化的NCApplet对象business:要执行的待办事务数据3、调用的例子1.Portal部分调用htmlheadscriptlanguage=JavaScriptsrc=NCApplet.js/script/headbodyonload=myNC.login('测试帐套','corp01','user01','2007-02-01')BR打开节点:BRSELECTonchange=myNC.openNode(this.options[this.selectedIndex].text.toLowerCase());name=messageOPTIONselected100401OPTION100402OPTION100404/OPTION/SELECTBRscriptlanguage=JavaScriptmyNC=newNCApplet(127.0.0.1,80);/script/body/html说明:蓝色部分为对NCApplet的调用部分2.NCApplet.js内容框架functionNCApplet(ncIP,ncPort){NCApplet.port=ncPort;NCApplet.IP=ncIP;_display();this.login=function(accountCode,unitCode,userCode,loginDate){//在公有成员中调用私有方法_login(accountCode,unitCode,userCode,loginDate);}this.openNode=function(funccode){//在公有成员中调用私有方法_openNode(funccode);}this.logout=function(){//在公有成员中调用私有方法logout();}}//完成NCApplet的加载、显示。说明:以下代码用于方案说明,正式提交系统运行代码为Servlet,由Servlet根据用户请求生成NCApplet脚本。function_display(){document.write(开始加载NCApplet....BR);document.write('NC服务器IP:'+NCApplet.IP+'BR');document.write('NC服务器端口:'+NCApplet.port+'BR');document.write('OBJECTclassid=clsid:2496941B-49AA-447D-8548-9DF72C6F0BFFcodebase=http://'+NCApplet.IP+':'+NCApplet.port+'/Client/NCClient1.4.2.exewidth=0height=0align=centerhspace=0vspace=0name=NC管理软件客户端配置程序/OBJECT');document.write('OBJECTid=NCAppletclassid=clsid:CAFEEFAC-0014-0002-0005-ABCDEFFEDCBAWIDTH=400HEIGHT=25name=NCAppletmayscript=');document.write(‘PARAMNAME=nameVALUE=NCApplet');document.write(‘PARAMNAME=CODEVALUE=com.ufsoft.ui.pub.SimpleApplet.class');document.write(‘PARAMNAME=CODEBASEVALUE=http://'+NCApplet.IP+':'+NCApplet.port+'/nc');document.write(‘PARAMNAME=typeVALUE=application/x-java-applet;version=1.3');document.write(‘PARAMNAME=scriptableVALUE=true');document.write(‘PARAMNAME=MAYSCRIPTVALUE=true');document.write(‘PARAMNAME=LOGINUITYPEVALUE=0');document.write(‘PARAMNAME=ISTRAININGVALUE=false');document.write(‘PARAMNAME=SCHEMEVALUE=http');document.write(‘PARAMNAME=SERVER_HOST_NAMEVALUE=wjh');document.write(‘PARAMNAME=SERVER_IPVALUE='+NCApplet.IP+'');document.write(‘PARAMNAME=SERVER_PORTVALUE='+NCApplet.port+'');document.write(‘PARAMNAME=SERVER_WORKINGDIRVALUE=E:/ufsoft/newcentury_35');document.write(‘PARAMNAME=CONTEXT_PATHVALUE=');document.write(‘PARAMNAME=USER_WIDTHVALUE=1024');document.write(‘PARAMNAME=USER_HEIGHTVALUE=768');document.write(‘PARAMNAME=isClientCacheCodeVALUE=Y');document.
本文标题:第三方portal与NC集成方案
链接地址:https://www.777doc.com/doc-2211708 .html