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>