外部系统单点登录NC57

1、 把loginnc.jsp拷贝到${nchome}\webapps\nc_web\下

2、 配置允许访问ip列表

    ${nchome}\ierp\bin\exterior.xml文件中增加允许的ip,内容如下

<?xml version="1.0" encoding='gb2312'?>
<root docType="remote ip config">
	<remoteip>127.0.0.1</remoteip>
	<remoteip>192.168.*.*</remoteip>
	<timeout>200</timeout>
</root>

3、 外部系统GET请求url

    http://ip:port/loginnc.jsp?accountcode=2018&pkcorp=1002&usercode=dxm

    url请求参数说明:

        accountcode:系统编码

        pkcorp:登录组织主键

        usercode:登录用户编码

    loginnc.jsp源码

<%@ page contentType="text/html; charset=GB2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 	"http://www.w3.org/TR/html4/loose.dtd">
<script type="text/javascript"> 
	var scheme = "<%=request.getScheme()%>"; //传输协议
	var servername = "<%=request.getServerName()%>"; //NC主机地址
	var serverport = "<%=request.getServerPort()%>"; //NC主机端口
	var ncurlUclient= "Uclient://start/" + scheme + "://" + servername + ":" + serverport;
	var ncurlIExplorer= scheme + "://" + servername + ":" + serverport;
	var ncurlBase = scheme + "://" + servername + ":" + serverport;
	var xmlHttp;
	var key;	
	var accountcode="<%=request.getParameter("accountcode")%>";//NC帐套编码
	var pkcorp = "<%=request.getParameter("pkcorp")%>"; 	//登录组织主键
	var usercode = "<%=request.getParameter("usercode")%>";//用户编码
	window.onload = LoginNC;
	function LoginNC() {
		if (null != usercode) { // 已登录
			setTimeout(openNC, 100);
		} else {//用户未登录
		}
	}
	//单点登录NC系统的方法
	function openNC() {
		doRequestUsingGET(usercode); //通过用户名获取key值
		var url = ncurlIExplorer + "/login.jsp?clienttype=portal&key=" + key;
		location.href = url;
	}
	//在NC中注册单点登录所使用的key注册码
	function doRequestUsingGET(usercode) {
		createXMLHttpRequest();
		var queryString = ncurlBase
				+ "/service/RegisterServlet?language=simpchn&accountcode="
				+ accountcode + "&pkcorp=" + pkcorp + "&usercode=" + usercode;
		xmlHttp.onreadystatechange = handleStateChange;
		xmlHttp.open("GET", queryString, false);
		xmlHttp.send(null);
	}
	//创建ajax异步请求对象
	function createXMLHttpRequest() {
		var code = usercode;
		if (window.ActiveXObject) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} else if (window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		}
	}
	//将得到的NC注册码赋值到变量key,用于单点登录NC系统使用
	function handleStateChange() {
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {//请求成功
				key = xmlHttp.responseText;
			} else {//请求失败
			}
		}
	}
</script>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
    <title>NC登录</title>
    </head>
    <body>
    </body>
</html>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值