外部系统单点登录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
    评论
单点登录(Single Sign-On,简称SSO)是一种身份验证和访问控制的解决方案,允许用户使用一组凭证(如用户名和密码)进行一次登录,然后在多个应用程序和系统中无需再次输入凭证即可访问。NC65作为一种有效的单点登录解决方案,能够带来以下好处。 首先,NC65实现了用户凭证的集中管理。用户只需在登录时输入一次凭证,系统便会将其保存在安全的认证服务器中。这样,用户无需记住多个复杂的用户名和密码,提高了登录的便捷性。 其次,NC65提供了高度的安全性保障。凭证的集中管理意味着可以更加严格地控制用户的权限和访问范围。只有经过授权的用户才能够访问系统中的应用程序和资源,从而降低了安全风险。 此外,NC65还提供了单点注销功能。用户在退出其中一个应用程序后,系统会自动注销用户的所有会话,确保用户不再能够访问其他应用程序。这种注销机制可以有效防止未经授权的访问。 此外,NC65还允许不同系统间的资源共享。用户只需一次登录即可访问各种内部和外部应用程序,无需重复登录。这大大提高了工作效率和用户体验。 总而言之,NC65作为单点登录解决方案,通过集中管理用户凭证、提供安全性保障、提供单点注销功能和实现资源共享等功能,为用户提供了方便快捷的登录体验,同时降低了安全风险和提高了工作效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值