日期:2014-05-16  浏览次数:20939 次

[asp.net]登录协同工作平台安全解决方案

[摘要]公司领导说登录验证的安全性如何保证,建议采用UKEY验证类似网银解决,调用第三方YT公司产品。

解决方案:


前端页面:

    <embed id="s_simnew61"  type="application/npsyunew6-plugin" hidden="true"> </embed><!--创建firefox,chrome等插件-->
    <script  type="text/javascript" language="javascript" >
        //加载皮肤
        var setTheme = function () {
            Ext.net.DirectMethods.GetThemeUrl(cbTheme.getValue(), {
                success: function (result) {
                    Ext.net.ResourceMgr.setTheme(result);
                }
            });
        };
        //回车出发
        document.onkeydown = function (event) {
            e = event ? event : (window.event ? window.event : null);
            if (e.keyCode == 13) {
                //执行的方法  
                //alert('回车检测到了');
                //Ext.net.DirectMethods.Login();
                login();
            }
        }

        var digitArray = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
        function toHex(n) {
            var result = ''
            var start = true;
            for (var i = 32; i > 0; ) {
                i -= 4;
                var digit = (n >> i) & 0xf;

                if (!start || digit != 0) {
                    start = false;
                    result += digitArray[digit];
                }
            }
            return (result == '' ? '0' : result);
        }

        var login = function () {
            var IsCheck = 'N';
            if (window.location.host == "localhost:23111") {
                var DevicePath, ret, n, mylen;
                try {
                    //建立操作我们的锁的控件对象,用于操作我们的锁
                    var s_simnew61;

                    //创建插件或控件
                    if (navigator.userAgent.indexOf("MSIE") > 0 && !navigator.userAgent.indexOf("opera") > -1) {
                        s_simnew61 = new ActiveXObject("Syunew6A.s_simnew6");
                    }
                    else {
                        s_simnew61 = document.getElementById('s_simnew61');
                    }


                    //查找是否存在锁,这里使用了FindPort函数
                    DevicePath = s_simnew61.FindPort(0);
                    if (s_simnew61.LastError != 0) {
                        window.alert("没有找到Ukey ,请插入UKey");
                        //window.location.href = "err.html";
                        return;
                    }

                    //这里返回对随机数的HASH结果
                    frmlogin.return_EncData.value = s_simnew61.EncString(frmlogin.rnd.value, DevicePath);
                    if (s_simnew61.LastError != 0) {
                        window.alert("Err to StrEnc,ErrCode is:" + s_simnew61.LastError.toString());
                        return;
                    }
                    IsCheck = 'Y';

                    Ext.net.DirectMethods.Login(IsCheck);

                } catch (e) {
                    alert("您在使用外网访问:" + e.name + ": " + e.message + "。可能是没有安装相应的控件或插件");
                }
            } else {
                Ext.net.DirectMethods.Login(IsCheck);
            }

        };
    </script>
    <script type="text/javascript" language="javascript">
        function reloadCode() {
            var obj = document.getElementById('imgCode');
            obj.src = "VerifyCode.aspx?";
        }

    </script>
CS代码: