ca单点登录

最近搞得单点登录碰到了很多问题,具体的问题有如下几个:

①如何获取usbkey的值

②要实现的单点登录的方案

③如何获取多个key的值,并进行选择登录

④ie跳谷歌访问业务界面

注:最后将实现代码附上,希望对大家有所帮助

1、具体实现代码如下

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <script type="text/javascript" src='../js/jquery-10.1.min.js'></script>
</head>
<body onload="doLogin()">
<object classid="clsid:000000-AAAA-4CC2-83C7-34SEEE98B6E" id="usb_ocx" name="usb_ocx" style="VISIBILITY:hidden"
        codebase="IB_USBKEY.ocx" width="100" height="10"></object>
</body>
<script>
    //执行单点登录
    function doLogin() {
       try{
           rtn1 = usb_ocx.setCurrentDev();
       }catch (e){
       }
       var caServerIp="127.0.0.1";
       var username="";
       rtn=usb_ocx.VgetnameFirst(caServerIp,"1");
       if(rtn.match("#.")){
           if(rtn=="#2"){
               rtn=usb_ocx.Vgetname("password123",caServerIp,"1");
               if(rtn.match("#.")){
                   if(rtn=="#2"){
                       alert("状态错误!需要输入PIN码")
                   }
               }
               return;
           }else{
               alert("没有插入key或者key错误!")
               return;
           }
       }
       if(rtn.indexOf("\\")==-1){
           alet("USBKEY not find username");
           return;
       }else{
           username = rtn.substring(rtn.lastIndexOf("\\")+1,rtn.length);
           if(username==""||username==null){
               alet("USBKEY not find username");
               return;
           }
       }
        $.ajax({
            url: '/bbdq-collection-tool/api/login/doLoginSign?userId='+username,
            method: "GET",
            async: true,
            success: function (data) {
            	// 在active前面打印日志,跳转有时会出现问题,只有打开f12才能跳转
                //console.log(data);
                var obj = new ActiveXObject("WScript.Shell")
                //启动 Chrome 浏览器袁转向登录页面
                obj.Run("chrome " + data, 0, false);

            }
        })
    }
</script>

2、上面代码分析及注意点

①必须放到里面,必须通过body的onload方法去加载js

问题1:刚开始把放到外面,用jquery的初始化函数去实现发现不行;

问题2:要获取2个key,这行代码必须得有

javascript 复制代码
rtn1 = usb_ocx.setCurrentDev();

问题3:ie跳谷歌跳转失败,首先代码必须是以下这样的:

javascript 复制代码
var obj = new ActiveXObject("WScript.Shell")
//启动 Chrome 浏览器袁转向登录页面
obj.Run("chrome https://www.baidu.com", 0, false);

问题3.1:ie跳转谷歌需要配置activex

问题3.2:在active前面打印日志,跳转有时会出现问题,只有打开f12才能跳转

相关推荐
默_笙4 小时前
🚦 请三个 AI 考官给 RAG 打分:量化评估实战(下)
前端·javascript
阿坨4 小时前
灵感闪存卡:一款 Tampermonkey用户脚本
javascript·tampermonkey
朝朝辞暮i6 小时前
C++ 第 25 课:getter / setter + this
java·javascript·c++
蜗牛互联网6 小时前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python
xieter7 小时前
【技术精选】深入浅出现代前端渲染与性能优化实践指南 (2026-10-04)
前端·javascript
xieter7 小时前
【硬核实战】TypeScript Compiler API: Preserving Child Node Narrowing in Reusable Type Guards 🔧 (2026-10-03)
前端·javascript
xieter7 小时前
【硬核实战】React 19 useFormStatus Returning False? I Built a SubmitButton That Fixes It (2026-10-03)
前端·javascript
paopaokaka_luck9 小时前
非遗文物数字化小程序(AI非遗问答、ONNX图像识别、协同过滤推荐、ECharts数据分析、非遗知识浏览与互动、文创商城订单闭环、文化活动报名签到、社区交流)
javascript·spring boot·mysql·数据分析·echarts·mybatis
Highcharts.js9 小时前
图表开发实战总结| 7 条“黄金法则”与“性能铁律”
前端·javascript·vue.js·编辑器·时序数据库·highcharts
Helix2509 小时前
Electron、WebView 框架与 HTA 对比:桌面应用选型、安全性与现代替代方案
前端·javascript·electron·webview·vbscript·hta·本地html应用